Ошибки · Решение
MySQL error 1067: Invalid default value
DDL задаёт default, который сервер не может принять для данной column definition.
Короткий ответ
MySQL 1067 означает, что DEFAULT для колонки недопустим для её типа или текущих SQL mode/версии сервера. Сверьте код с официальной поддержкой производителя и выполните только безопасные шаги.
Что означает ошибка
DDL задаёт default, который сервер не может принять для данной column definition.
Возможные причины
- Неверный literal для типа DATE/TIMESTAMP/числа/ENUM.
- SQL mode запрещает значение, которое раньше принималось.
- Миграция рассчитана на другую версию MySQL с отличающимися правилами default.
Что проверить
- Посмотрите точную column definition и default.
- Сверьте sql_mode на проблемном сервере.
- Проверьте документацию текущей версии для default expressions данного типа.
Безопасные шаги
- Замените default на допустимое значение или expression.
- Не отключайте строгий sql_mode глобально, пока не оценено влияние на остальные данные.
- Синхронизируйте migration tests с той же версией/config, что production.
Только безопасные обратимые действия. Опасные шаги — только по официальной инструкции и с пониманием рисков.
Когда нужен сервис
- Если 1067 появляется только на части серверов, сравните version и sql_mode между узлами перед изменением DDL.
Похожие ошибки
- /errors/mysql-error-1005-cant-create-table/
- /errors/mysql-error-1040-con-count-error/
- /errors/mysql-error-1048-bad-null-error/
Что учитывать
Точная причина зависит от версии ПО/прошивки, полного текста ошибки и контекста. Официальная инструкция имеет приоритет.
Официальный источник
Расшифровка сверена с официальными страницами поддержки из источников ниже. Редакция N1RO не диагностировала ваш конкретный случай.