Về cơ bản nó là gì
Đó là cú pháp không chính xác khiến MySQL nghĩ rằng bạn đang cố gắng làm điều gì đó với một cột hoặc tham số có loại "NHÂN ĐÔI" không chính xác.
Học hỏi từ sai lầm của tôi
Trong trường hợp của tôi, tôi đã cập nhật cột varchar trong cài đặt bảng NULL
có giá trị 0
đứng. Truy vấn cập nhật của tôi là như thế này:
UPDATE myTable SET myValue = NULL WHERE myValue = 0;
Bây giờ, vì loại thực tế myValue
là VARCHAR(255)
điều này đưa ra cảnh báo:
+---------+------+-----------------------------------------------+
| Level | Code | Message |
+---------+------+-----------------------------------------------+
| Warning | 1292 | Truncated incorrect DOUBLE value: 'value xyz' |
+---------+------+-----------------------------------------------+
Và bây giờ myTable
thực tế là trống rỗng, bởi vì myValue
bây giờ là NULL
cho MỌI ROW trong bảng! Làm sao chuyện này lại xảy ra?
* la hét nội bộ *
Hơn 30k hàng hiện thiếu dữ liệu.
* la hét nội bộ tăng cường *
Cảm ơn lòng tốt cho bản sao lưu. Tôi đã có thể phục hồi tất cả các dữ liệu.
* giảm cường độ la hét nội bộ *
Truy vấn đã sửa như sau:
UPDATE myTable SET myValue = NULL WHERE myValue = '0';
^^^
Quotation here!
Tôi ước điều này không chỉ là một lời cảnh báo để bớt đi những lời trích dẫn đó.
* Kết thúc la hét nội bộ *