"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment faire en sorte que MySQL tronque les données au lieu de générer une erreur lors de l'insertion ?

Comment faire en sorte que MySQL tronque les données au lieu de générer une erreur lors de l'insertion ?

Publié le 2024-11-18
Parcourir:597

How to Make MySQL Truncate Data Instead of Raising an Error on Insert?

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

Dernier tutoriel Plus>

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