今天修改表引擎為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';