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 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 comme 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 :
<code class="sql">SET SESSION sql_mode=NO_STRICT_TRANS_TABLES,NO_STRICT_ALL_TABLES;</code>
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
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!