Nie mogę utworzyć indeksu na varchar(500)
."Podany klucz był za długi, maksymalna długość klucza to 1000 bajtów"
MySQL: Specified key was too long; max key length is 1000 bytes
Nie mogę utworzyć indeksu na varchar(500)
."Podany klucz był za długi, maksymalna długość klucza to 1000 bajtów"
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
Czy znaki utf-8 nie powinny mieć zmiennej długości (1-4), w zależności od punktu kodu Unicode? – Svante
Maksymalna liczba bajtów potrzebnych dla jednego znaku utf8 wynosi 3, a MySQL musi zapewnić, że wszystkie znaki w polu te będą maksymalną liczbą bajtów. – Jrgns
Z wyjątkiem maksymalnej liczby bajtów na UTF-8 wynosi 4 bajty. MySQL dokonał tej głupiej, głupiej, głupiej, strasznie złej decyzji, aby utf8 obsługiwał tylko 3 bajty. "Prawdziwy" zestaw znaków kompatybilny z UTF-8 to utf8mb4, obsługiwany tylko w MySQL 5.6. –
Pełną odpowiedź na to pytanie jest podany [tutaj] (http://stackoverflow.com/questions/1814532/1071-specified-key-was-too-long-max -key-length-is-767-bajtów/1814594 # 1814594). –
Oto 1 krótko działające i całkowicie działające rozwiązanie: http://stackoverflow.com/questions/1814532/1071-specyfikowany-key-to-to-long-max-key-length-jest-767-bytes/22873006#22873006 –