默认情况下,DB2 SQL将NULL插入NOTNULL
在使用默认值将空值插入定义为NOTNULL的列时,我遇到了一个问题。 在本例中,为了便于说明,我删除了大多数列默认情况下,DB2 SQL将NULL插入NOTNULL,sql,db2,default-value,notnull,Sql,Db2,Default Value,Notnull,在使用默认值将空值插入定义为NOTNULL的列时,我遇到了一个问题。 在本例中,为了便于说明,我删除了大多数列 CREATE TABLE FKTIM04 ( OBJECTID CHARACTER(32) NOT NULL, UP_CHANGE_CL CHARACTER(1) DEFAULT '1' NOT NULL, UP_CTRL_CL CHARACTER(1) DEFAULT '0' NOT NULL, CONS
CREATE TABLE
FKTIM04
(
OBJECTID CHARACTER(32) NOT NULL,
UP_CHANGE_CL CHARACTER(1) DEFAULT '1' NOT NULL,
UP_CTRL_CL CHARACTER(1) DEFAULT '0' NOT NULL,
CONSTRAINT PK_FKTIM04 PRIMARY KEY (OBJECTID)
);
执行此SQL语句时,出现一个错误:
INSERT INTO KTI.FKTIM04 (
UP_Change_CL
,UP_ctrl_CL
,ObjectID
)
VALUES (
NULL
,NULL
,'UMSTM0LW8A8Z50DT4WA7U93EEQDRXRTH'
)
错误:
[代码:-407,SQL状态:23502]将空值赋值给NOT
不允许空列TBSPACEID=2、TABLEID=1298、COLNO=46。。
SQLCODE=-407,SQLSTATE=23502,DRIVER=4.22.29
我知道该列被定义为NOTNULL。如果它试图在列中插入NULL,它不应该改为使用默认值吗
请教我如何获得要插入的默认值。
我应该注意什么
谢谢。如果在该列的INSERT语句中未提供值,则该列将使用默认值。 因此,不要在列表中包含要获取其默认值的列,如下所示:
INSERT INTO KTI.FKTIM04 (
ObjectID
)
VALUES (
'UMSTM0LW8A8Z50DT4WA7U93EEQDRXRTH'
)
这样将插入行,并且由于列表中未指定这两列,因此这两列将获得其默认值。
看。
另一种方法是使用默认关键字:
INSERT INTO FKTIM04 (
UP_Change_CL
,UP_ctrl_CL
,ObjectID
)
VALUES (
DEFAULT
,DEFAULT
,'UMSTM0LW8A8Z50DT4WA7U93EEQDRXRTH'
)
请参阅。如果INSERT语句中没有为此列提供值,则默认值将用于该列。 因此,不要在列表中包含要获取其默认值的列,如下所示:
INSERT INTO KTI.FKTIM04 (
ObjectID
)
VALUES (
'UMSTM0LW8A8Z50DT4WA7U93EEQDRXRTH'
)
这样将插入行,并且由于列表中未指定这两列,因此这两列将获得其默认值。
看。
另一种方法是使用默认关键字:
INSERT INTO FKTIM04 (
UP_Change_CL
,UP_ctrl_CL
,ObjectID
)
VALUES (
DEFAULT
,DEFAULT
,'UMSTM0LW8A8Z50DT4WA7U93EEQDRXRTH'
)
看