Inserindo string vazia como NULL no MySQL no Mac

0

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.

    
por Hubidubi 22.09.2015 / 15:11

2 respostas

0

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
    
por 22.09.2015 / 15:24
1

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 ()
    
por 22.09.2015 / 15:26