A solução apropriada não é usar o modo estrito em my.cnf:
original:
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
modificado:
sql_mode=NO_ENGINE_SUBSTITUTION
Eu me deparo com um problema estranho. Eu tentei executar a seguinte declaração no Mac:
INSERT INTO table (field) VALUES ('')
em que field é numérico que aceita NULL
value.
Eu tenho um MySQL 5.5.40 instalado no Ubuntu, onde esta consulta é executada muito bem. Eu também tenho um MySQL 5.5.45 instalado no Mac, onde a consulta falha:
ERROR 1366 (HY000): Incorrect integer value: '' for column 'field'
Descobri que a instalação padrão do MySQL no Mac usa valores padrão e não usa nenhum arquivo my.cnf
config. Eu tentei examinar my.cnf
no Ubuntu, mas nenhuma das opções de configuração parecia relacionada a esse problema.
Acho a mensagem de erro elegível: você não pode inserir uma string em uma coluna int. Tente isso:
INSERT INTO table (field) VALUES (NULL)
ou simples
INSERT INTO table (field) VALUES ()