今天修改表引擎为InnoDB,发现抱错如题,排查下来时表行格式不正确,不是innodb支持的格式。
碰到这种,应先修改表行格式为innodb支持格式,然后再修改表引擎。
修改表格式命令生成:
SELECT CONCAT('ALTER TABLE ', table_schema, '.', table_name, ' ROW_FORMAT = DEFAULT;') sql_text
FROM information_schema.tables
WHERE table_schema NOT IN ('mysql','information_schema','performance_schema','sys')
AND engine <> 'InnoDB';
修改表引擎命令生成:
SELECT CONCAT('ALTER TABLE ', table_schema, '.', table_name, ' ENGINE=InnoDB;') sql_text
FROM information_schema.tables
WHERE table_schema NOT IN ('mysql','information_schema','performance_schema','sys')
AND engine <> 'InnoDB';