And*_*ili 1 sql oracle insert oracle11g oracle-sqldeveloper
我是数据库中的新手,我有以下问题尝试实现一个插入查询,该查询在名为CODA_RX的表中创建一个具有以下结构的表(通过执行描述CODA_RX语句获得:
Name Null Type
----------------------------- -------- --------------
PK_CODA NOT NULL NUMBER(10)
FK_TIPO_DOC NUMBER(4)
FK_PIVA_DESTINATARIO VARCHAR2(16)
FK_CDZZ VARCHAR2(4)
DATA_IN DATE
DATA_OUT DATE
NUM_DOC VARCHAR2(35)
FK_STATO NOT NULL NUMBER(2)
CANALE VARCHAR2(3)
SIZE_XML NUMBER(10)
FK_PIVA_MITTENTE VARCHAR2(20)
INDIRIZZAMENTO VARCHAR2(100)
SEGNALAZIONE VARCHAR2(4000)
FORNITORE VARCHAR2(100)
MATRICOLA_VERIFICATORE VARCHAR2(16)
MATRICOLA_APPROVATORE VARCHAR2(16)
DATA_INSERIMENTO_VERIFICATORE DATE
DATA_LAVORAZIONE_APPROVATORE DATE
MOTIVO_RIFIUTO VARCHAR2(1000)
TOT_FATTURA NUMBER(10,2)
DATA_DOC DATE
DATA_SCADENZA_DOC DATE
CIG VARCHAR2(10)
CUP VARCHAR2(15)
Run Code Online (Sandbox Code Playgroud)
好吧,似乎唯一不能为NULL的 2个字段是PK_CODA(我认为是表的主键,是不是?我怎么检查它?)和FK_STATO字段.
所以我想在这张表中插入一条新记录.如果PK_CODA是主键,我认为它应该由Oracle自动生成.
所以我试图执行这个仅包含FK_STATO字段的新记录设置的语句:
insert into CODA_RX (FK_STATO) values (2);
Run Code Online (Sandbox Code Playgroud)
但问题是我收到此错误消息:
Errore con inizio alla riga 5 nel comando:插入CODA_RX(FK_STATO)值(2)报告错误:错误SQL:ORA-01400:无法插入NULL("EDIADD"."CODA_RX"."PK_CODA")01400.00000 - "无法将NULL插入(%s)"*原因:
*操作:
所以看起来PK_CODA字段不能为空,那么当我尝试在表中插入新记录时它是不是自动生成的呢?或者我的插入查询中还有一些其他语法错误?我错过了什么?
TNX
主键不能为NULL.
不,它不是自动生成的.如果您习惯使用SQL Server或postgresql,这可能很奇怪.但是你必须问一个序列的值.看看这里:如何在Oracle上使用AUTO_INCREMENT创建id?