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 можно ослабить как временный обходной путь/для совместимости, но для качества данных рекомендуется сохранять строгий режим.
Ещё по этой СУБД
- 3140ER_INVALID_JSON_TEXT: Invalid JSON text
- 1526ER_NO_PARTITION_FOR_GIVEN_VALUE: Table has no partition for value
- 1049Unknown database 'name'
- 1206The total number of locks exceeds the lock table size
- 1236Got fatal error 1236 from master when reading data from binary log
- 1129Host 'host' is blocked because of many connection errors
- 1194Table 'name' is marked as crashed and should be repaired