Вставка строки в DB2 из вложенного выбора - ошибка NULL - PullRequest
7 голосов
/ 17 мая 2009

Я пытаюсь вставить строку в таблицу, используя значение, полученное из другой таблицы. Вот оператор 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_item.work_item_display_id.

Оператор SELECT в приведенном выше запросе возвращает ожидаемый результат, когда я запускаю его самостоятельно.

Весь запрос SQL выдает мне следующую ошибку:

Ошибка: ошибка DB2 SQL: SQLCODE = -407, SQLSTATE = 23502, SQLERRMC = TBSPACEID = 2, TABLEID = 75, COLNO = 2, ВОДИТЕЛЬ = 3.50.152 SQLState: 23502 Код ошибки: -407

Что это значит и что не так с моим запросом?

1 Ответ

15 голосов
/ 17 мая 2009

Наиболее вероятное объяснение состоит в том, что в таблице NextKeyValue есть дополнительные столбцы, которые не могут принимать значения NULL, и этот оператор INSERT «пытается» вставить в них значение NULL.

Так ли это случайно?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...