MySQL Incorrect integer value

Давно не обновлял на локальном сервере программное обеспечение, и тут после обновления mysql-сервера до версии 5.5 столкнулся с тем, что многое из написанного ранее вываливается с ошибкой mysql типа «1366 — Incorrect integer value». Всё из-за того, что в поля с автоинкрементными значениями я вставлял по старинке, оставляя значение этого поля пустым. Сейчас же требуется использовать значение NULL. Новый сервер mysql по-умолчанию работает со включенным strict-mode, и не позволяет использовать такие инсерты. Поэтому вариантов решения два:
1. переписать код и вставлять в автоинкрементные поля значения грамотно, используя NULL;
2. выключить strict-mode, закоментировав в my.ini (my.cnf) строку «sql-mode=»STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION»«.

Если меняете настройки mysqld, не забудьте потом перезагрузить сервис.

Share