Hallo,
die Fehlermeldung des MySQL5 Daemon (v5.6.31) ist soweit korrekt, da derzeit pro Tabelle des Typs InnoDB eine maximale “row size” von 65535 möglich ist.
Wir haben uns die aktuelle Tabelle “s_articles_attributes” zusammen mit dem Kunden angesehen.
In diesem Fall wurden zuvor einige Spalten in der Speicherbreite erweitert, sodass bereits das erste ALTER TABLE Statement des Upgrade SQL fehlschlägt.
Hier das Layout der aktuellen Tabelle:
CREATE TABLE `s_articles_attributes` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`articleID` int(11) unsigned DEFAULT NULL,
`articledetailsID` int(11) unsigned DEFAULT NULL,
`attr1` varchar(255) COLLATE utf8_unicode_ci DEFAULT '0',
`attr2` varchar(255) COLLATE utf8_unicode_ci DEFAULT '0',
`attr3` varchar(255) COLLATE utf8_unicode_ci DEFAULT '0',
`attr4` varchar(8000) COLLATE utf8_unicode_ci DEFAULT NULL,
`attr5` varchar(8000) COLLATE utf8_unicode_ci DEFAULT NULL,
`attr6` varchar(1100) COLLATE utf8_unicode_ci DEFAULT NULL,
`attr7` varchar(1100) COLLATE utf8_unicode_ci DEFAULT NULL,
`attr8` varchar(1500) COLLATE utf8_unicode_ci DEFAULT NULL,
...
Entsprechend muss zunächst geprüft werden, ob die jeweilige Speicherbreite auf VARCHAR(500) verkürzt werden kann, ohne einen Datenverlust zu erleiden.
Das angestrebte Layout der Tabelle (VARCHAR(500)) bleibt auf jeden Fall im Rahmen der maximalen “row size” und ist damit fehlerfrei anwendbar und nicht ursächlich.