J'utilise MySQL 8.0 et j'essaie de stocker une URL dans une colonne. Chaque fois que j'essaie d'insérer une URL de plus de 191 caractères, j'obtiens l'erreur suivante :
1406 Data too long for column 'url' at row 1
Le type de données de la colonne est VARCHAR(1000) et l'URL comporte environ 450 caractères. J'ai essayé d'insérer d'autres chaînes et tout ce qui contient moins de 191 caractères, et tout ce qui contient moins de 191 caractères fonctionne bien, mais rien de plus de 191 caractères.
J'ai essayé de changer le type de données de cette colonne en d'autres formats de chaîne tels que TEXT, LONGTEXT et BLOB. J'ai également essayé d'insérer des chaînes de plus de 191 caractères dans d'autres tables et elles étaient également limitées à 191 caractères.
Je sais que utf8mb4 donne VARCHAR(255) qui est en fait 191, mais ne devrais-je pas le remplacer par VARCHAR(1000) ? Existe-t-il un paramètre dans la base de données qui pourrait provoquer ce problème ?
Tiré de ici :
Vous feriez donc mieux d'utiliser le format
TEXT
pour votre URL.Mise à jour :
Selon cette réponse, le problème vient du jeu de caractères, alors qu'il doit être
utf8
时,它是utf8mb4
, même collationné.