为什么我在尝试执行这个在 table 中插入记录的简单查询时收到此错误消息?
Why I obtain this error message when I try to perform this simple query that insert a record inside a table?
我是数据库新手,遇到以下问题。
在 Oracle 数据库上,我有一个名为 KM_COUNTRY_AREA 的 table,具有以下结构:
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 字段我认为它是一个自动生成的字段(因为 table 是使用 Hibernate 创建的并且该字段被定义为 @Id 和 @GeneratedValue 在模型中 class).
所以现在我必须将一些记录直接插入到数据库中(我需要做一些测试)但是我发现编写插入查询时遇到了一些问题,我正在按照本教程进行操作: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 table?
Tnx
EDIT-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:
似乎我不能将主键设为空,但这很奇怪,因为在 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)
我是数据库新手,遇到以下问题。
在 Oracle 数据库上,我有一个名为 KM_COUNTRY_AREA 的 table,具有以下结构:
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 字段我认为它是一个自动生成的字段(因为 table 是使用 Hibernate 创建的并且该字段被定义为 @Id 和 @GeneratedValue 在模型中 class).
所以现在我必须将一些记录直接插入到数据库中(我需要做一些测试)但是我发现编写插入查询时遇到了一些问题,我正在按照本教程进行操作: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 table?
Tnx
EDIT-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:
似乎我不能将主键设为空,但这很奇怪,因为在 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)