1406: Данные слишком длинные для столбца
MySQLЧто это значит?
Записано значение длиннее заданной максимальной длины столбца. Например, строка из 20 символов не помещается в столбец VARCHAR(10).
Почему возникает?
Ширина столбца слишком мала для данных; символы в многобайтовом наборе (utf8mb4) занимают больше места, чем ожидалось; результат конкатенации становится длиннее; активен строгий режим SQL (иначе значение молча усекается).
Как исправить
Расширьте столбец: ALTER TABLE my_table MODIFY my_column VARCHAR(255); Для очень длинного содержимого рассмотрите тип TEXT. Если значение нужно сократить, обрежьте его в приложении или с помощью SUBSTRING. Найдите переполняющую строку: SELECT * FROM my_table WHERE CHAR_LENGTH(my_column) > 10; Добавьте проверку входных данных.
Ещё по этой СУБД
- 1136Число столбцов не совпадает с числом значений
- 1048Столбец 'x' не может быть null
- 1292Некорректное значение datetime / усечено некорректное значение
- 1071Указанный ключ слишком длинный; максимальная длина ключа — 767 байт
- 1050Таблица уже существует
- 1051Неизвестная таблица 'x'
- 1091Невозможно выполнить DROP 'x'; проверьте, что столбец/ключ существует