Поведение MySQL при вставке: усечение или ошибка
MySQL демонстрирует различное поведение при попытке вставить данные, длина которых превышает предел длины столбца: усечение или ошибка . В этом сценарии мы стремимся изменить экземпляр MySQL для усечения данных вместо того, чтобы вызывать ошибку.
Решение: отключите STRICT_TRANS_TABLES и STRICT_ALL_TABLES
По умолчанию MySQL применяет строгие правила. режим, включающий настройки STRICT_TRANS_TABLES и STRICT_ALL_TABLES. Эти настройки запрещают недопустимые или отсутствующие значения в операциях изменения данных, таких как INSERT или UPDATE.
Чтобы разрешить автоматическое усечение вставленных строк, мы можем отключить STRICT_TRANS_TABLES и STRICT_ALL_TABLES. Вот как это сделать:
SET SESSION sql_mode=NO_STRICT_TRANS_TABLES,NO_STRICT_ALL_TABLES;
Объяснение:
Отключив эти настройки, мы удалим ограничение на недопустимые или отсутствующие значения. Это позволяет MySQL автоматически обрезать данные, которые превышают предел длины столбца, придерживаясь режима усечения по умолчанию. /dev.mysql.com/doc/refman/8.0/en/sql-mode.html
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3