Сбой ограничения sqlite3 NOT NULL, несмотря на то, что c не является нулевым значением - PullRequest
0 голосов
/ 05 февраля 2020

несмотря на отсутствие NULL значения в столбце preptime2 (значение = 7), SQLite выдает исключение:

Сбой ограничения NOT NULL.

Выдержка ниже показано

(1) значение в menucard_meal.preptime2 (значение = 7)

, а затем

(2) попытка INSERT INTO тех же данных в таблице orders_meal который выдает ошибку.

sqlite> select preptime2 from menucard_meal where id = 32;
7
sqlite> INSERT INTO orders_meal SELECT * from menucard_meal where id = 32;
Error: NOT NULL constraint failed: orders_meal.preptime2
sqlite> 

Кто-нибудь знает, что здесь происходит? Thnx

1 Ответ

1 голос
/ 05 февраля 2020

В этом утверждении:

INSERT INTO orders_meal 
SELECT * from menucard_meal 
where id = 32;

задействованы 2 таблицы: orders_meal и menucard_meal. В приведенном выше утверждении вы не перечисляете столбцы ни одной из таблиц Это не обязательно, но это хорошая практика, и обычно она избавляет вас от таких проблем, как (я подозреваю) эта. Перечислите столбцы для обеих таблиц и убедитесь, что соответствующие столбцы расположены в том же порядке, например:

INSERT INTO orders_meal(column1, column2, columnforpreptime2, ...) 
SELECT col1, col2, preptime2, ... 
from menucard_meal 
where id = 32;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...