schwobeseggl.de ein Neigschmecktr in Baden

24Okt/08Off

Relay, ein Verzeichnis-Manager

Online im Verzeichnis rumbrowsen wollte ich schon immer. Nun bin ich beim Lesen über Dependency Injection irgendwie auf relay gestossen. Nunja, leider scheitert das an einer Eigenart von MySQL:

CREATE TABLE IF NOT EXISTS `relay_clients` (
`id` int( 11 ) NOT NULL AUTO_INCREMENT ,
`name` text NOT NULL ,
`display` text,
`path` text NOT NULL ,
PRIMARY KEY ( `id` ) ,
UNIQUE KEY `pn` ( `path` ( 250 ) , `name` ( 250 ) )
);

scheitert mit der Fehlermeldung:

Specified key was too long; max key length is 1000 bytes.
Could not create the table relay_clients

Nun, warum? 250+250 sollten doch weniger als 1000 sein? Jein :)

Willkommen im Multibyte-Zeitalter. Früher gab es nur ASCII, heute gibt es Unicode. ASCII braucht ein Byte, Unicode je nachdem 1-3 Byte. Und MySQL geht jetzt einfach mal vom schlimmsten Fall aus, nämlich 3 Byte. Somit haben wir also (250 + 250) *3 und damit auch mehr als 1000 Byte. Wie man das behebt? Einfach kein Unicode verwenden. Sonst weiss ich noch keine Lösung

  1. Powerpoint mit PHP
  2. Ubuntu 9.10 und Eclipse
  3. Handy
  4. Dell Studio XPS 13
  5. Steve jobs died, omg, orly !!11einself

Kommentare (2) Trackbacks (0)
  1. Ja, die 250 durch 133 ersetzen behebt die Fehlermeldung, ich weiss aber nicht, ob die Anwendung damit zufrieden ist :)


Trackbacks are disabled.