別のテーブルから派生した値を使用して、テーブルに行を挿入しようとしています。これが私が使おうとしている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
これはどういう意味ですか、そして私のクエリの何が問題になっていますか?
最も可能性の高い説明は、NextKeyValueテーブルにNULL値を受け入れることができない追加の列があり、このINSERTステートメントがそれらにNULLを入れようとしていることです。
たまたまそうですか?