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

2 Gedanken zu „Relay, ein Verzeichnis-Manager“

Kommentare sind geschlossen.