Qu'est-ce que c'est fondamentalement
C'est une syntaxe incorrecte qui fait penser à MySQL que vous essayez de faire quelque chose avec une colonne ou un paramètre qui a le type incorrect "DOUBLE".
Apprenez de mon erreur
Dans mon cas, j'ai mis à jour la colonne varchar dans un paramètre de table NULL
où la valeur 0
se situait. Ma requête de mise à jour était comme ceci:
UPDATE myTable SET myValue = NULL WHERE myValue = 0;
Maintenant, puisque le type réel de myValue
est VARCHAR(255)
ceci donne l'avertissement:
+---------+------+-----------------------------------------------+
| Level | Code | Message |
+---------+------+-----------------------------------------------+
| Warning | 1292 | Truncated incorrect DOUBLE value: 'value xyz' |
+---------+------+-----------------------------------------------+
Et maintenant myTable
est pratiquement vide, car myValue
c'est maintenant NULL
pour CHAQUE RANG du tableau! Comment est-ce arrivé?
* hurlement interne *
Plus de 30 000 lignes ont maintenant des données manquantes.
* les hurlements internes s'intensifient *
Dieu merci pour les sauvegardes. J'ai pu récupérer toutes les données.
* L'intensité des cris internes diminue *
La requête corrigée est la suivante:
UPDATE myTable SET myValue = NULL WHERE myValue = '0';
^^^
Quotation here!
J'aurais aimé que ce soit plus qu'un simple avertissement, il est donc moins dangereux d'oublier ces citations.
* Fin des cris internes *