ALTER TABLE ALL TABLES ROW_FORMAT=已修复;

ALTER TABLE ALL TABLES ROW_FORMAT=Fixed;

我如何 运行 一个数据库中所有表的命令?

ALTER TABLE table_name ROW_FORMAT=Fixed;

我有40000多张表,想一次性全部改掉

每个 ALTER 语句不能更改 table 超过一个 table;但您可以在 information_schema.tables 上使用查询来生成更改语句。

类似

SELECT CONCAT('ALTER TABLE `', table_name, '` ROW_FORMAT=fixed;') AS aQuery
FROM information_schema.tables
WHERE table_schema = 'myschema'

请记住,InnoDB tables 不支持 FIXED,而且我不能 100% 确定是否可以为 MyISAM 显式设置它(或者完全依赖于table 列的数据类型。)