O que basicamente é
É uma sintaxe incorreta que faz com que o MySQL pense que você está tentando fazer algo com uma coluna ou parâmetro com o tipo incorreto "DOUBLE".
Aprenda com o meu erro
No meu caso, atualizei a coluna varchar em uma configuração de tabela em NULL
que o valor 0
estava. Minha consulta de atualização foi assim:
UPDATE myTable SET myValue = NULL WHERE myValue = 0;
Agora, já que o tipo real de myValue
is VARCHAR(255)
é o seguinte:
+---------+------+-----------------------------------------------+
| Level | Code | Message |
+---------+------+-----------------------------------------------+
| Warning | 1292 | Truncated incorrect DOUBLE value: 'value xyz' |
+---------+------+-----------------------------------------------+
E agora myTable
está praticamente vazio, porque myValue
agora está NULL
para CADA LINHA na mesa! Como isso aconteceu?
* gritos internos *
Mais de 30 mil linhas agora têm dados ausentes.
* gritos internos se intensificam *
Graças a Deus por backups. Consegui recuperar todos os dados.
* Intensidade gritante interna diminui *
A consulta corrigida é a seguinte:
UPDATE myTable SET myValue = NULL WHERE myValue = '0';
^^^
Quotation here!
Eu gostaria que isso fosse mais do que apenas um aviso, por isso é menos perigoso esquecer essas citações.
* Fim da gritaria interna *