Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
默认情况下,DB2 SQL将NULL插入NOTNULL_Sql_Db2_Default Value_Notnull - Fatal编程技术网

默认情况下,DB2 SQL将NULL插入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

在使用默认值将空值插入定义为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,
        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'
    )