Що це в основному
Неправильний синтаксис змушує 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ЗА ВСЕ РЯДО в таблиці! Як це сталося?
* внутрішній крик *
Зараз понад 30 тис. Рядків відсутні дані.
* внутрішній крик посилюється *
Дякую добру за резервні копії. Мені вдалося відновити всі дані.
* внутрішня інтенсивність крику знижується *
Виправлений запит такий:
UPDATE myTable SET myValue = NULL WHERE myValue = '0';
^^^
Quotation here!
Я хотів би, щоб це було більше, ніж просто попередження, тому менш небезпечно забувати ці цитати.
* Кінець внутрішнім криком *