Temel olarak ne
MySQL'in yanlış türde "DOUBLE" türüne sahip bir sütun veya parametre ile bir şeyler yapmaya çalıştığınızı düşünmesine neden olan yanlış sözdizimi.
Benim hatamdan öğren
Benim durumumda NULLdeğerin bulunduğu bir tablo ayarındaki varchar sütununu güncelledim 0. Güncelleme sorgum şuydu:
UPDATE myTable SET myValue = NULL WHERE myValue = 0;
Şimdi, asıl türü olduğu myValueiçin VARCHAR(255)bu uyarı verir:
+---------+------+-----------------------------------------------+
| Level | Code | Message |
+---------+------+-----------------------------------------------+
| Warning | 1292 | Truncated incorrect DOUBLE value: 'value xyz' |
+---------+------+-----------------------------------------------+
Ve şimdi myTablepratik olarak boş, çünkü myValueşimdi NULLtablodaki HER SATIR için! Bu nasıl oldu?
* iç çığlıklar *
30 binden fazla satırda eksik veriler var.
* iç çığlıklar yoğunlaşıyor *
Yedekler için çok şükür. Tüm verileri kurtarabildim.
* dahili çığlık yoğunluğu düşer *
Düzeltilmiş sorgu aşağıdaki gibidir:
UPDATE myTable SET myValue = NULL WHERE myValue = '0';
^^^
Quotation here!
Keşke bu bir uyarıdan daha fazlası olsaydı bu yüzden bu alıntıları unutmak daha az tehlikelidir.
* Dahili çığlığı sonlandırın *