1118: ER_TOO_BIG_ROWSIZE: Row size too large
MySQLO que significa?
O tamanho de linha da tabela que você está definindo excede o tamanho máximo de linha permitido pelo storage engine. O tamanho máximo de linha para colunas que não são BLOB/TEXT é 65535 bytes; o InnoDB tem limites adicionais que dependem do tamanho de página.
Por que acontece?
Definir muitas colunas largas (especialmente VARCHAR/CHAR longos); cada caractere ocupando até 4 bytes em conjuntos de caracteres multibyte como utf8mb4; ou colunas grandes armazenadas inline no formato de linha COMPACT/REDUNDANT do InnoDB.
Como resolver
Converta algumas colunas grandes para TEXT/BLOB (que podem ser armazenadas fora da página); reduza colunas desnecessárias ou muito largas, ou divida a tabela em duas. No InnoDB, usar ROW_FORMAT=DYNAMIC ou COMPRESSED ajuda ao mover colunas grandes para fora da página: ALTER TABLE my_table ROW_FORMAT=DYNAMIC; Considere também o innodb_page_size.
Mais entradas deste banco
- 1290ER_OPTION_PREVENTS_STATEMENT: running with the --read-only option (em execução com a opção --read-only)
- 1836ER_READ_ONLY_MODE: Running in read-only mode (em execução no modo somente leitura)
- 3819ER_CHECK_CONSTRAINT_VIOLATED: Check constraint is violated (a constraint CHECK foi violada)
- 1170ER_BLOB_KEY_WITHOUT_LENGTH: BLOB/TEXT column used in key specification without a key length (coluna BLOB/TEXT usada em uma chave sem comprimento de chave)
- 1592ER_BINLOG_UNSAFE_STATEMENT: Unsafe statement written to the binary log (comando inseguro gravado no binary log)
- 3140ER_INVALID_JSON_TEXT: Invalid JSON text
- 1526ER_NO_PARTITION_FOR_GIVEN_VALUE: Table has no partition for value (a tabela não tem nenhuma partição para o valor)