1118: ER_TOO_BIG_ROWSIZE: Row size too large
MySQLWas bedeutet das?
Die Zeilengröße der Tabelle, die du definierst, überschreitet die von der Storage Engine erlaubte maximale Zeilengröße. Die maximale Zeilengröße für Nicht-BLOB/TEXT-Spalten beträgt 65535 Bytes; InnoDB hat zusätzliche, von der Seitengröße abhängige Limits.
Ursache
Definition vieler breiter Spalten (vor allem langer VARCHAR/CHAR); bis zu 4 Bytes pro Zeichen in Multibyte-Zeichensätzen wie utf8mb4; oder große Spalten, die im COMPACT/REDUNDANT-Zeilenformat von InnoDB inline gespeichert werden.
Lösung
Wandle einige große Spalten in TEXT/BLOB um (diese können off-page gespeichert werden); verkleinere unnötige oder sehr breite Spalten oder teile die Tabelle in zwei auf. In InnoDB hilft ROW_FORMAT=DYNAMIC oder COMPRESSED, weil große Spalten off-page ausgelagert werden: ALTER TABLE my_table ROW_FORMAT=DYNAMIC; Berücksichtige außerdem innodb_page_size.
Weitere Einträge zu dieser Datenbank
- 1290ER_OPTION_PREVENTS_STATEMENT: running with the --read-only option
- 1836ER_READ_ONLY_MODE: Running in read-only mode
- 3819ER_CHECK_CONSTRAINT_VIOLATED: Check constraint is violated
- 1170ER_BLOB_KEY_WITHOUT_LENGTH: BLOB/TEXT column used in key specification without a key length
- 1592ER_BINLOG_UNSAFE_STATEMENT: Unsafe statement written to the binary log
- 3140ER_INVALID_JSON_TEXT: Invalid JSON text
- 1526ER_NO_PARTITION_FOR_GIVEN_VALUE: Table has no partition for value