2009-06-24 25 views
16

No puedo crear el índice en varchar(500)."La clave especificada era demasiado larga; la longitud máxima de la clave es 1000 bytes"

MySQL: Specified key was too long; max key length is 1000 bytes

+1

se da la respuesta completa a esta pregunta [aquí] (http://stackoverflow.com/questions/1814532/1071-specified-key-was-too-long-max -key-length-is-767-bytes/1814594 # 1814594). –

+0

Aquí hay una línea corta y una solución completamente funcional: http://stackoverflow.com/questions/1814532/1071-specified-key-was-too-long-max-key-length-is-767-bytes/22873006#22873006 –

Respuesta

24
latin1 = 1 byte = 1 character 
uft8 = 3 byte = 1 character 
gbk = 2 byte = 1 character 
+4

¿No deberían los caracteres utf-8 ser de longitud variable (1-4), dependiendo del punto de código Unicode? – Svante

+5

El número máximo de bytes necesarios para un carácter utf8 es 3 y MySQL debe prever que todos los caracteres en el campo sean el número máximo de bytes. – Jrgns

+0

Excepto que la cantidad máxima de bytes en UTF-8 es de 4 bytes. MySQL tomó esta decisión estúpida, estúpida, estúpida y horriblemente malvada para hacer que utf8 solo sea compatible con 3 bytes. El juego de caracteres "real" UTF-8 es utf8mb4, solo compatible con MySQL 5.6. –

Cuestiones relacionadas