1118: ER_TOO_BIG_ROWSIZE: Row size too large (taille de ligne trop grande)
MySQLQue signifie cette erreur ?
La taille de ligne de la table que vous définissez dépasse la taille de ligne maximale autorisée par le moteur de stockage. La taille de ligne maximale pour les colonnes non BLOB/TEXT est de 65535 octets ; InnoDB impose des limites supplémentaires qui dépendent de la taille de page.
Cause
Définition de nombreuses colonnes larges (notamment de longs VARCHAR/CHAR) ; chaque caractère occupant jusqu'à 4 octets dans les jeux de caractères multioctets comme utf8mb4 ; ou grandes colonnes stockées en ligne dans le format de ligne COMPACT/REDUNDANT d'InnoDB.
Comment la corriger
Convertissez certaines grandes colonnes en TEXT/BLOB (elles peuvent être stockées hors page) ; réduisez les colonnes inutiles ou très larges, ou scindez la table en deux. Dans InnoDB, utiliser ROW_FORMAT=DYNAMIC ou COMPRESSED aide en déplaçant les grandes colonnes hors page : ALTER TABLE my_table ROW_FORMAT=DYNAMIC; Tenez aussi compte d'innodb_page_size.
Autres entrées pour ce moteur
- 1290ER_OPTION_PREVENTS_STATEMENT: running with the --read-only option (le serveur tourne avec l'option --read-only)
- 1836ER_READ_ONLY_MODE: Running in read-only mode (fonctionnement en mode lecture seule)
- 3819ER_CHECK_CONSTRAINT_VIOLATED: Check constraint is violated (contrainte CHECK violée)
- 1170ER_BLOB_KEY_WITHOUT_LENGTH: BLOB/TEXT column used in key specification without a key length (colonne BLOB/TEXT utilisée dans une clé sans longueur de clé)
- 1592ER_BINLOG_UNSAFE_STATEMENT: Unsafe statement written to the binary log (instruction non sûre écrite dans le binary log)
- 3140ER_INVALID_JSON_TEXT: Invalid JSON text (texte JSON invalide)
- 1526ER_NO_PARTITION_FOR_GIVEN_VALUE: Table has no partition for value (aucune partition de la table pour cette valeur)