Code d'erreur: 1406. Données trop longues pour la colonne.
CREATE TABLE `TEST`
(
`idTEST` INT NOT NULL ,
`TESTcol` VARCHAR(45) NULL ,
PRIMARY KEY (`idTEST`)
);
Maintenant Insert
quelques valeurs
INSERT INTO TEST
VALUES
(
1,
'Vikas'
)
select
SELECT * FROM TEST;
Insérer un enregistrement plus que la length
INSERT INTO TEST
VALUES
(
2,
'Vikas Kumar Gupta Kratika Shukla Kritika Shukla'
)
Si nous select
le length
SELECT LENGTH('Vikas Kumar Gupta Kratika Shukla Kritika Shukla')
'47'
Et il montre le message d'erreur
Code d'erreur: 1406. Données trop longues pour la colonne
Mais quelle est mon attente, je veux insérer au moins 45 premiers caractères dans le tableau
s'il vous plaît laissez-moi savoir si la question n'est pas claire.
Je connais la cause de cette erreur. J'essaie d'insérer des valeurs plus que la longueur du type de données.
Je veux une solution dans MySQL car c'est possible dans MS SQL
. J'espère donc que ce sera aussi dans MySQL .
MySQL tronquera toute valeur d'insertion qui dépasse la largeur de colonne spécifiée.
pour que cela fonctionne sans erreur, essayez de changer votre SQL mode
afin de ne pas utiliser STRICT
.
Pour changer de mode
Ceci peut être fait de deux façons:
my.ini
(Windows) ou my.cnf
(Unix) dans le répertoire d'installation de MySQL et recherchez le texte "sql-mode".Trouver:
Code:
# Set the SQL mode to strict
sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
Remplacer par:
Code:
# Set the SQL mode to strict
sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
Ou
Code:
SET @@global.sql_mode= '';
Je pense que désactiver le mode STRICT n'est pas une bonne option car l'application peut commencer à perdre les données saisies par les utilisateurs.
Si vous recevez des valeurs pour le TESTcol d'une application, vous pouvez ajouter une validation de modèle, comme dans Rails.
validates :TESTcol, length: { maximum: 45 }
Si vous manipulez des valeurs dans un script SQL, vous pouvez tronquer la chaîne avec la commande SOUS-CHAÎNE
INSERT INTO TEST
VALUES
(
1,
SUBSTRING('Vikas Kumar Gupta Kratika Shukla Kritika Shukla', 0, 45)
);