DBAtlas · Атлас эксплуатации баз данных

1364: Field 'name' doesn't have a default value

MySQL

Что это значит?

Строка вставлена без значения для столбца, определённого как NOT NULL без DEFAULT. В строгом режиме SQL MySQL выдаёт ошибку, так как не может автоматически заполнить отсутствующий обязательный столбец.

Почему возникает?

Обязательный столбец (NOT NULL, без DEFAULT) пропущен в INSERT, а в sql_mode включён STRICT_TRANS_TABLES/STRICT_ALL_TABLES. Приложение, написанное для старого нестрогого режима, сталкивается с этой ошибкой при переносе на сервер со строгим режимом.

Как исправить

Добавьте в INSERT значение для отсутствующего столбца или определите для столбца разумный DEFAULT: ALTER TABLE my_table MODIFY my_column ... NOT NULL DEFAULT 'value'; Если столбец действительно необязательный, разрешите NULL. sql_mode можно ослабить как временный обходной путь/для совместимости, но для качества данных рекомендуется сохранять строгий режим.

Открыть в DBAtlas →

Ещё по этой СУБД