mysql error 1067 invalid default value for Ошибка NO_ZERO_IN_DATE, NO_ZERO_DATE
Primary tabs
Forums:
При добавлении столбца в таблицу таким запросом:
ALTER TABLE `adv_booking` ADD `format_id` INT(11) DEFAULT NULL;
появляется ошибка:
sql error 1067 invalid default value for 'period_start'
Столбец 'period_start' находится в необходимой мне таблице, и имеет структуру:
`period_start` TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00'
Решение
Собственно, проблема в sql_mode. По дефолту, этот параметр включает в себя значения:
"NO_ZERO_IN_DATE,NO_ZERO_DATE", которые и блокируют запрос.
В этом можно убедиться, выполнив запрос:
show variables like 'sql_mode' ;
Ответом будет:
'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'
Решение - удалить эти 2 параметра. Для этого, войдем в mysql под root, и выполним:
set global sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
- Log in to post comments
- 2426 reads