n1ro°
RU

Ошибки · Решение

MySQL error 1067: Invalid default value

DDL задаёт default, который сервер не может принять для данной column definition.

Редакция N1RO · Проверено

Короткий ответ

MySQL 1067 означает, что DEFAULT для колонки недопустим для её типа или текущих SQL mode/версии сервера. Сверьте код с официальной поддержкой производителя и выполните только безопасные шаги.

Что означает ошибка

DDL задаёт default, который сервер не может принять для данной column definition.

Возможные причины

  • Неверный literal для типа DATE/TIMESTAMP/числа/ENUM.
  • SQL mode запрещает значение, которое раньше принималось.
  • Миграция рассчитана на другую версию MySQL с отличающимися правилами default.

Что проверить

  • Посмотрите точную column definition и default.
  • Сверьте sql_mode на проблемном сервере.
  • Проверьте документацию текущей версии для default expressions данного типа.

Безопасные шаги

  1. Замените default на допустимое значение или expression.
  2. Не отключайте строгий sql_mode глобально, пока не оценено влияние на остальные данные.
  3. Синхронизируйте 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 не диагностировала ваш конкретный случай.