![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 18.02.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Problem z tabelą po zmianie kodowania z latin2 na utf8, tabela wygląda następująco:
Przy próbie wrzucenia do bazy wywala błąd: Cytat MySQL zwrócił komunikat: Dokumentacja #1071 - Specified key was too long; max key length is 1000 bytes Oczywiście w sieci znalazłem rozwiązanie: http://bugs.mysql.com/bug.php?id=6604 które niestety nie działa po zastosowaniu. Moje pytanie: Miał ktoś do czynienia z podobnym błędem i zna sposób na naprostowanie sprawy bez przepisywania kodu skryptu? Dzięki z góry. Pozdrawiam. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Przyjaciele php.pl Postów: 5 724 Pomógł: 259 Dołączył: 13.04.2004 Skąd: N/A Ostrzeżenie: (0%) ![]() ![]() |
Cos krecisz - wrzucilem to do bazy, w defaultowym UTFie - i oczywiscie nie dziala.
Dodalem dlugosc stringow przy definicji klucza `anonymthreadid` -- bez `anonymgemuserids` -- 255 [znakow, nie bajtow] `anonymplayeruserids` -- 77 [-||-] to bylo max co da sie osiagnac 255 + 77 = 332 332 * 3 + 4 = 999 czyli prawie max [1000 bajtow] Po zmianie kodowania kolumn na latin_bin mozesz robic klucze na calej dlugosci kolumn |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 30.05.2008 Ostrzeżenie: (0%) ![]() ![]() |
wbrew nazwie utf8 przez mysql nie jest traktowany jako znak 8 bitowy (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) wiec 255 znakow w utfie to troche wiecej niz 500 bajtow (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) ale fakt, jako ze z nazwy pola wynika ze bedziesz tam trzymal id (zakladam ze liczby) to latin_bin jest jak najbardziej odpowiedni dla tych pol.
Ten post edytował ikubicki 30.05.2008, 13:44:20 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 15:56 |