Lorsque vous essayez d'insérer des données dans une table MySQL où la longueur des données de la colonne dépasse sa largeur définie, vous Je rencontrerai l'erreur « Code d'erreur : 1406. Données trop longues pour la colonne ».
Considérez ceci exemple :
CREATE TABLE `TEST` ( `idTEST` INT NOT NULL , `TESTcol` VARCHAR(45) NULL , PRIMARY KEY (`idTEST`) );
L'insertion de données dans la longueur de colonne spécifiée fonctionne comme prévu :
INSERT INTO TEST VALUES ( 1, 'Vikas' );
Cependant, tenter d'insérer des données qui dépassent la longueur de colonne maximale entraîne l'erreur :
INSERT INTO TEST VALUES ( 2, 'Vikas Kumar Gupta Kratika Shukla Kritika Shukla' );
Cela se produit parce que MySQL tronque toute valeur d'insertion plus longue que la colonne spécifiée width.
Solution :
Pour résoudre ce problème, désactivez temporairement le mode strict de MySQL :
Dans votre my.ini (Windows) ou le fichier my.cnf (Unix) :
Modifiez le paramètre "sql-mode" pour supprimer "STRICT_TRANS_TABLES":
# Set the SQL mode to strict sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
Utilisation d'une requête SQL dans un outil de gestion de base de données :
Exécutez la requête suivante pour définir le mode SQL global sur vide :
SET @@global.sql_mode= '';
Avec le mode strict désactivé, vous pouvez insérer des données qui dépassent la longueur de la colonne. Soyez toutefois prudent car cela peut entraîner des troncatures de données et des incohérences, utilisez donc cette solution judicieusement.
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!