Невозможно вставить нулевые значения, поскольку у вас есть ограничения NOT NULL
на столбцы.
Первый и третий оператор выдают ошибку, поскольку вы пытаетесь вставить нулевое значение в столбец price
и / или created_time
, и это явно не удовлетворяет ограничениям.
Если вы действительно хотите разрешить нулевые значения, то удалите ограничение NOT NULL
для столбца (-ов).
В качестве альтернативы, вы можете успешно выполнить свои SQL операторы, как показано ниже:
insert into `delivery` () values ();
insert into `delivery` (`price`) values (1);
insert into `delivery` (`created_time`) values (now());
select * from `delivery`;
Результат:
price created_time
----- --------------------------
0 2020-04-16 09:48:23.505147
1 2020-04-16 09:48:25.549202
0 2020-04-16 09:48:26.0
РЕДАКТИРОВАТЬ :
Второй запрос фактически завершается MySQL 5.7; он молча игнорирует явное нулевое значение и использует значение по умолчанию.
Похоже, что поведение было исправлено в MySQL 8.x, поскольку теперь происходит сбой (как и должно быть).