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 NULL
değ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 myValue
için VARCHAR(255)
bu uyarı verir:
+---------+------+-----------------------------------------------+
| Level | Code | Message |
+---------+------+-----------------------------------------------+
| Warning | 1292 | Truncated incorrect DOUBLE value: 'value xyz' |
+---------+------+-----------------------------------------------+
Ve şimdi myTable
pratik olarak boş, çünkü myValue
şimdi NULL
tablodaki 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 *