2009-06-24 16 views
16

varchar(500) numaralı dizinde dizin oluşturamıyorum."Belirtilen anahtar çok uzun; maksimum anahtar uzunluğu 1000 bayttır"

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

+1

bu soruya tam cevap [buradan] verilir (http://stackoverflow.com/questions/1814532/1071-specified-key-was-too-long-max -tuşu uzunlukta-is-767-bayt/1.814.594 # 1.814.594). –

+0

İşte 1 satır kısa ve tamamen çalışma çözümü: http://stackoverflow.com/questions/1814532/1071-specified-key-was-too-long-max-key-length-is-767-bytes/22873006#22873006 –

cevap

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

Unicode kod noktasına bağlı olarak utf-8 karakterleri değişken uzunlukta (1-4) olmalıdırlar mı? – Svante

+5

Bir utf8 karakter için gerekli olan maksimum bayt sayısı 3'dür ve MySQL te alandaki tüm karakterlerin azami bayt sayısı olmasını sağlamalıdır. – Jrgns

+0

UTF-8'deki maksimum bayt sayısı 4 bayttır. MySQL bu aptal, aptal, aptal, korkunç kötülük kararını utf8 sadece 3 byte desteklemiştir. "Gerçek" UTF-8 uyumlu karakter takımı sadece MySQL 5.6'da desteklenen utf8mb4'dür. –

İlgili konular