2009-06-24 3 views
16

varchar(500)에 색인을 만들 수 없습니다."지정한 키가 너무 길었습니다. 최대 키 길이는 1000 바이트입니다."

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

+1

이 질문에 대한 완전한 대답은 [여기] 주어진다 (http://stackoverflow.com/questions/1814532/1071-specified-key-was-too-long-max -key-length-is-767-bytes/1814594 # 1814594). –

+0

다음은 1 줄의 짧고 완전한 해결책입니다. http://stackoverflow.com/questions/1814532/1071-specified-key-was-too-long-max-key-length-is-767-bytes/22873006#22873006 –

답변

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

utf-8 문자는 유니 코드 코드 포인트에 따라 가변 길이 (1-4)가 아니어야합니까? – Svante

+5

하나의 utf8 문자에 필요한 최대 바이트 수는 3이며, MySQL은 te 필드의 모든 문자에 대해 최대 바이트 수를 제공해야합니다. – Jrgns

+0

UTF-8의 최대 바이트 수는 4 바이트입니다. MySQL은 utf8을 3 바이트 만 지원하도록 만드는이 어리석은, 어리석은, 멍청한, 끔찍한 악의적 인 결정을 내 렸습니다. "실제"UTF-8 호환 문자셋은 utf8mb4이며, MySQL 5.6에서만 지원됩니다. –

관련 문제