1366: Некорректное строковое/целое значение для столбца
MySQLЧто это значит?
В столбец вставлено значение, несовместимое с его типом или набором символов. Обычно причина — несоответствие кодировки символов или типа.
Почему возникает?
Запись 4-байтового эмодзи/символа (utf8mb4) в столбец latin1, ввод нечислового текста в числовой столбец, неверная кодировка подключения или отправка значения другого типа, чем ожидается.
Как исправить
При проблемах с символами преобразуйте столбец/таблицу в utf8mb4: ALTER TABLE my_table CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci и задайте кодировку подключения utf8mb4. Для числовых полей проверяйте типы в приложении. Помните, что сервер работает в строгом режиме SQL (STRICT); первопричина — тип/кодировка данных.
Ещё по этой СУБД
- 1215Не удаётся добавить ограничение внешнего ключа
- 1451Не удаётся удалить или обновить родительскую строку: нарушено ограничение внешнего ключа
- 1452Не удаётся добавить или обновить дочернюю строку: нарушено ограничение внешнего ключа
- 1044Доступ пользователя к базе данных запрещён
- 1264Значение вне допустимого диапазона для столбца
- 1052Столбец 'x' в списке полей неоднозначен
- 1136Число столбцов не совпадает с числом значений