У меня есть таблица MySql с полем, определенным как:
`created` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP
На моей локальной машине я могу запустить:
INSERT INTO mytbl (id, user_id, created) VALUES(88882341234, 765, null);
SELECT id, user_id, created FROM mytbl WHERE id = '88882341234';
И тогда "created" будет показывать что-то вроде "2014-06-13 21:16:42".
Но на моем промежуточном сервере, если я запускаю те же запросы, я получаю эту ошибку:
Column 'created' cannot be null.
Схемы таблиц одинаковы (по локальной и промежуточной), которые я обеспечил с помощью mysqldump (чтобы клонировать таблицу перед запуском этого теста).
Я запускаю MySql 5.6.17 на обеих машинах. Я также гарантировал, что оба имеют один и тот же sql_mode.
В чем может быть проблема?
P.S. Для людей, которые не знают, почему я устанавливаю значение null-nullable для null, MySql Docs говорят:
Кроме того, вы можете инициализировать или обновить любой столбец TIMESTAMP до текущую дату и время, присвоив ему значение NULL, если оно не было определяемый атрибутом NULL для разрешения значений NULL.