Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wie kann ich ein indiziertes varchar(255) von utf8 in utf8mb4 ändern und trotzdem unter der maximalen Schlüssellänge von 767 bleiben?

Ich denke, es hängt mit der maximalen Datenlänge der Zeile zusammen, es gibt eine solche Einschränkung, zumindest für String-Datentypen, wie ich weiß. Um dies zu vermeiden, versuchen Sie, die Daten der Tabelle zu trennen, z. Split-Tabelle in zwei Tabellen unter Verwendung einer Eins-zu-Eins-Beziehung.

Zur maximalen Schlüssellänge:Ich habe versucht, eine Tabelle mit indiziertem utf8mb4 zu erstellen Feld wurde es erfolgreich mit der Schlüssellänge 191 erstellt, aber als ich es auf 192 gesetzt habe, hat es einen Fehler ausgegeben - Der angegebene Schlüssel war zu lang; Die maximale Schlüssellänge beträgt 767 Byte .