यह मूल रूप से क्या है
यह गलत सिंटैक्स है जिसके कारण MySQL को लगता है कि आप एक कॉलम या पैरामीटर के साथ कुछ करने की कोशिश कर रहे हैं जिसमें गलत प्रकार "DOUBLE" है।
मेरी गलती से सीखो
मेरे मामले में मैंने एक तालिका सेटिंग में varchar कॉलम को अपडेट किया NULL
जहां मूल्य 0
खड़ा था। मेरी अपडेट क्वेरी इस प्रकार थी:
UPDATE myTable SET myValue = NULL WHERE myValue = 0;
अब, के वास्तविक प्रकार के बाद से myValue
है VARCHAR(255)
यह चेतावनी देता है:
+---------+------+-----------------------------------------------+
| Level | Code | Message |
+---------+------+-----------------------------------------------+
| Warning | 1292 | Truncated incorrect DOUBLE value: 'value xyz' |
+---------+------+-----------------------------------------------+
और अब myTable
व्यावहारिक रूप से खाली है, क्योंकि myValue
अब NULL
तालिका में हर जगह के लिए है! ये कैसे हुआ?
* आंतरिक चिल्ला *
30k से अधिक पंक्तियों में अब लापता डेटा है।
* आंतरिक चिल्ला * तेज
बैकअप के लिए धन्यवाद। मैं सभी डेटा को पुनर्प्राप्त करने में सक्षम था।
* आंतरिक चिल्ला तीव्रता तीव्रता कम *
सही क्वेरी निम्नानुसार है:
UPDATE myTable SET myValue = NULL WHERE myValue = '0';
^^^
Quotation here!
मैं चाहता हूं कि यह सिर्फ एक चेतावनी से अधिक था इसलिए उन उद्धरणों को भूलना कम खतरनाक है।
* अंत में आंतरिक चीखना *