Comportement d'insertion MySQL : troncature ou erreur
MySQL présente différents comportements lors de la tentative d'insertion de données dépassant la limite de longueur de colonne : troncature ou erreur . Dans ce scénario, notre objectif est de modifier une instance MySQL pour tronquer les données au lieu de générer une erreur.
Solution : désactivez STRICT_TRANS_TABLES et STRICT_ALL_TABLES
Par défaut, MySQL applique des règles strictes. mode, qui inclut les paramètres STRICT_TRANS_TABLES et STRICT_ALL_TABLES. Ces paramètres interdisent les valeurs invalides ou manquantes dans les opérations de modification de données telles que INSERT ou UPDATE.
Pour permettre la troncature automatique des chaînes insérées, nous pouvons désactiver STRICT_TRANS_TABLES et STRICT_ALL_TABLES. Voici comment procéder :
SET SESSION sql_mode=NO_STRICT_TRANS_TABLES,NO_STRICT_ALL_TABLES;
Explication :
En désactivant ces paramètres, nous supprimons la restriction sur les valeurs invalides ou manquantes. Cela permet à MySQL de tronquer silencieusement les données qui dépassent la limite de longueur de colonne, en adhérant au comportement de troncature par défaut.
Référence :
Modes SQL de MySQL Server : https:/ /dev.mysql.com/doc/refman/8.0/en/sql-mode.html
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3