Je ne peux pas créer d'index sur varchar(500)
."La clé spécifiée était trop longue, la longueur maximale de la clé est de 1000 octets"
MySQL: Specified key was too long; max key length is 1000 bytes
Je ne peux pas créer d'index sur varchar(500)
."La clé spécifiée était trop longue, la longueur maximale de la clé est de 1000 octets"
MySQL: Specified key was too long; max key length is 1000 bytes
latin1 = 1 byte = 1 character
uft8 = 3 byte = 1 character
gbk = 2 byte = 1 character
Les caractères utf-8 ne doivent-ils pas être de longueur variable (1-4), selon le code de code Unicode? – Svante
Le nombre maximum d'octets requis pour un caractère utf8 est 3, et MySQL doit prévoir que tous les caractères dans le champ soient le nombre maximum d'octets. – Jrgns
Sauf le nombre maximal d'octets sur UTF-8 est de 4 octets. MySQL a pris cette décision stupide, stupide, stupide, horriblement maléfique de faire en sorte qu'utf8 ne supporte que 3 octets. Le "vrai" jeu de caractères compatible UTF-8 est utf8mb4, uniquement supporté par MySQL 5.6. –
La réponse complète à cette question est donnée [ici] (http://stackoverflow.com/questions/1814532/1071-specified-key-was-too-long-max -key-length-is-767-bytes/1814594 # 1814594). –
Voici une solution courte et complètement fonctionnante de 1 ligne: http://stackoverflow.com/questions/1814532/1071-specified-key-was-too-long-max-key-length-is-767-bytes/22873006#22873006 –