2009-05-17 10 views
6

別の表から派生した値を使用して、表に行を挿入しようとしています。ここで私が使用しようとしていますSQL文は次のとおりです。サブ選択NULLエラーからDB2に行を挿入する

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

だから、私は「DisplayWorkItemId」と最大値よりも1以上の「です。KeyValue」の「キー名」を持っているNextKeyValueの行を作成しようとしていますwork_item.work_item_display_idにあります。

上記のクエリのSELECT文は、それを単独で実行したときに期待される結果を返します。

全体のSQLクエリはいえ、私に次のエラーを与えている:

Error: DB2 SQL Error: SQLCODE=-407, SQLSTATE=23502, SQLERRMC=TBSPACEID=2, TABLEID=75, COLNO=2, DRIVER=3.50.152 SQLState: 23502 ErrorCode: -407

何をこれが意味する、と何が私のクエリが間違っているのでしょうか?

+0

+1この問題は一般的でDB2特有のものではないため、質問のタイトルを「サブセレクトからローを挿入する - NULLエラー」と変更し、「SQL」タグを追加することをお勧めします。 –

+0

良いアイデア。やった。 – pkaeding

答えて

15

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

万が一その場合ですか?

+0

うん、それだった。私が忘れてしまったnullableではなかったテーブルには他の列がたくさんありました。ありがとう! – pkaeding

関連する問題