mySQL mit InnoDB: key was too long Fehler bei utf8mb4

28. April 2016 code 0

Bei der Arbeit an einem kleinen Web Projekt wollte ich eine Tabelle in mySQL (genauer gesagt MariaDB) anlegen. Als Zeichensatz dafür habe ich utf8mb4 verwendet, um alle nur möglichen Zeichen abzudecken. Hier der zum Erzeugen der Tabelle verwendete SQL Befehl:

Führt man diesen aus, erhält man den Fehler

Specified key was too long; max key length is 767 bytes

Die Lösung ist relativ simpel, muss man aber erst mal drauf kommen:
Bei utf8mb4 belegt jedes Zeichen eines Varchar Feldes 4 bytes. Innodb hat ein Limit von 767 bytes für Keys, welches nicht überschritten werden darf.

Wir müssen also die Länge der Felder username und email auf 767 / 4 Zeichen verringern, was nach Rundung 191 Zeichen entspricht.


Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

* Copy This Password *

* Type Or Paste Password Here *