Tatsächlich speichert der Datentyp VARCHAR Zeichendaten variabler Länge in Einzel- und Mehrbyte-Zeichen. Die Syntax für diesen Datentyp ist VARCHAR(n), wobei n die maximale Anzahl von Zeichen ist, die beim Erstellen der Tabelle angegeben werden müssen. Vor MySQL 5.03 konnte der Wert von n im Bereich von 0 bis 255 liegen, in MySQL 5.03 und höher konnte der Wert jedoch im Bereich von 0 bis 65.535 liegen.
Die maximale Anzahl der in einem VARCHAR gespeicherten Zeichen hängt von der maximalen Zeilengröße und dem verwendeten Zeichensatz ab. Wenn wir den ASCII-Zeichensatz verwenden, können 65.535 Zeichen gespeichert werden, da ASCII 1 Byte pro Zeichen verwendet. Wenn wir andererseits den Zeichensatz utf8 verwenden, beträgt die Zeichenbeschränkung 21.844, da utf8 3 Bytes pro Zeichen verwendet. Die maximale Zeilengröße beträgt 65.535 Byte, was bedeutet, dass die Zeilengröße einschließlich aller Spalten 65.535 Byte nicht überschreiten darf.
mysql> Create Table var_test(FName Varchar(32765) NOT NULL, LName Varchar(32766) NOT NULL); Query OK, 0 rows affected (0.25 sec)
Die obige Abfrage erstellt eine Tabelle mit zwei Spalten: FName Varchar(32765) und LName Varchar(32766). Die Gesamtlänge beträgt also 32765+2+32766+2=65535 (wobei 2 Bytes pro Spalte zum Speichern der Länge verwendet werden).
mysql> Create Table var_test1(FName varchar(32766) NOT NULL, LName Varchar(32766) NOT NULL); ERROR 1118 (42000): Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. You have to change some columns to TEXT or BLOBs
Jetzt gibt MySQL einen Fehler zurück, wenn die Länge um 1 Byte erhöht wird, wie in der obigen Abfrage gezeigt.
Das obige ist der detaillierte Inhalt vonWas ist die maximale Länge einer MySQL-VARCHAR-Spalte?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!