Sql 从sub-select-NULL错误向DB2插入行

Sql 从sub-select-NULL错误向DB2插入行,sql,db2,Sql,Db2,我试图使用从另一个表派生的值将一行插入表中。下面是我尝试使用的SQL语句: INSERT INTO NextKeyValue(KeyName, KeyValue) SELECT 'DisplayWorkItemId' AS KeyName, (MAX(work_item_display_id) + 1) AS KeyValue FROM work_item; 因此,我试图在NextKeyValue中创建一行,该行的'KeyName'为'DisplayWorkItemId','KeyValue'

我试图使用从另一个表派生的值将一行插入表中。下面是我尝试使用的SQL语句:

INSERT INTO NextKeyValue(KeyName, KeyValue) SELECT 'DisplayWorkItemId' AS KeyName, (MAX(work_item_display_id) + 1) AS KeyValue FROM work_item;
因此,我试图在
NextKeyValue
中创建一行,该行的'KeyName'为'DisplayWorkItemId','KeyValue'比
work\u item.work\u item\u display\u id
中的最大值多一个

当我单独运行上面查询中的SELECT语句时,它将返回预期结果

但是,整个SQL查询给了我以下错误:

错误:db2sql错误:SQLCODE=-407, SQLSTATE=23502,SQLERRMC=TBSPACEID=2, TABLEID=75,COLNO=2,DRIVER=3.50.152 SQLState:23502错误代码:-407


这意味着什么?我的查询有什么问题?

最可能的解释是,NextKeyValue表中有其他列不能接受空值,而此INSERT语句“试图”将空值放入其中


可能是这样吗?

是的,就是这样。该表中还有许多其他列不可为null,我已经忘记了。谢谢这个答案帮助我准确地确定了哪个列出错:+1我建议您将问题的标题改为“从sub select插入一行-NULL error”,并添加“SQL”标记,因为这个问题是一般性的,而不是特定于DB2的。