我在数据库中很新,存在以下问题。
在一个Oracle数据库上,我有一个名为KM_COUNTRY_AREA的表,其结构如下:
COLUMN NAME DATA_TYPE NULLABLE DATA_DEFAULT COLUMN_ID
--------------------------------------------------------------------------------
IDCOUNTRYAREA NUMBER(19,0) No (null) 1
NOMEFOLDER VARCHAR2(255 CHAR) Yes (null) 2
COUNTRY_IDCOUNTRY NUMBER(19,0) Yes (null) 3
所以我认为IDCOUNTRYAREA字段是一个自动生成的字段(因为该表是使用Hibernate创建的,并且在模型类中将该字段定义为@Id和@GeneratedValue)。
因此,现在我必须将一些记录直接插入数据库中(我需要做一些测试),但是在编写插入查询时发现了一些问题,我正在关注本教程:http : //www.w3schools.com/sql/sql_insert .asp
并且我已经创建了这个SQL语句:
INSERT INTO KM_COUNTRY_AREA (IDCOUNTRYAREA, NOMEFOLDER, COUNTRY_IDCOUNTRY) VALUES (null, "BRAZIL", 715);
我将第一列的值设置为null,因为它必须是自动生成的(但我认为这是错误的)。
它不起作用,并且我收到以下错误消息:
Errore con inizio alla riga 1 nel comando:
INSERT INTO KM_COUNTRY_AREA (IDCOUNTRYAREA, NOMEFOLDER, COUNTRY_IDCOUNTRY)
VALUES (null, "BRAZIL", 715)
Errore alla riga del comando:2 Colonna:14
Report errori:
Errore SQL: ORA-00984: colonna non consentita in questo caso
00984. 00000 - "column not allowed here"
*Cause:
*Action:
如何解决此问题并将行正确插入KM_COUNTRY_AREA表中?
特纳克斯
编辑1:
我尝试使用以下方法进行修改:
INSERT INTO KM_COUNTRY_AREA (IDCOUNTRYAREA, NOMEFOLDER, COUNTRY_IDCOUNTRY)
VALUES (null, 'BRAZIL', 715);
但我收到以下错误消息:
Errore con inizio alla riga 1 nel comando:
INSERT INTO KM_COUNTRY_AREA (IDCOUNTRYAREA, NOMEFOLDER, COUNTRY_IDCOUNTRY)
VALUES (null, 'BRAZIL', 715)
Report errori:
Errore SQL: ORA-01400: impossibile inserire NULL in ("PRC_KM_OWNER"."KM_COUNTRY_AREA"."IDCOUNTRYAREA")
01400. 00000 - "cannot insert NULL into (%s)"
*Cause:
*Action:
看来主键不能为null,但这很奇怪,因为在Hibernate中我将此字段定义为:
@Id
@GeneratedValue
private Long idCountryArea;
因此,我认为必须自动生成其值,这是怎么回事?
删除Double quotes
并single quotes
用于插入varchar
数据
还创建一个sequence
自动生成值
CREATE SEQUENCE seq
MINVALUE 1
START WITH 1
INCREMENT BY 1
INSERT INTO KM_COUNTRY_AREA
(IDCOUNTRYAREA,NOMEFOLDER, COUNTRY_IDCOUNTRY)
VALUES (seq.nextval, 'BRAZIL', 715)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句