web-dev-qa-db-ja.com

副選択からDB2に行を挿入する-NULLエラー

別のテーブルから派生した値を使用して、テーブルに行を挿入しようとしています。これが私が使おうとしているSQLステートメントです:

INSERT INTO NextKeyValue(KeyName, KeyValue) SELECT 'DisplayWorkItemId' AS KeyName, (MAX(work_item_display_id) + 1) AS KeyValue FROM work_item;

そのため、NextKeyValueに、「DisplayWorkItemId」の「KeyName」とwork_item.work_item_display_idの最大値より1つ大きい「KeyValue」を持つ行を作成しようとしています。

上記のクエリのSELECTステートメントを単独で実行すると、期待される結果が返されます。

ただし、SQLクエリ全体で次のエラーが発生します。

エラー:DB2 SQLエラー:SQLCODE = -407、SQLSTATE = 23502、SQLERRMC = TBSPACEID = 2、TABLEID = 75、COLNO = 2、DRIVER = 3.50.152 SQLState:23502 ErrorCode:-407

これはどういう意味ですか、そして私のクエリの何が問題になっていますか?

7
pkaeding

最も可能性の高い説明は、NextKeyValueテーブルにNULL値を受け入れることができない追加の列があり、このINSERTステートメントがそれらにNULLを入れようとしていることです。

たまたまそうですか?

16
Roee Adler