为什么这个简单的插入查询在Oracle数据库上无法工作?

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

use*_*r_0 6

主键不能为NULL.

不,它不是自动生成的.如果您习惯使用SQL Server或postgresql,这可能很奇怪.但是你必须问一个序列的值.看看这里:如何在Oracle上使用AUTO_INCREMENT创建id?