ALTER TABLE ALL TABLES ROW_FORMAT=固定;

Luc*_*tro 2 mysql sql alter

如何为数据库中的所有表运行命令?

ALTER TABLE table_name ROW_FORMAT=Fixed;
Run Code Online (Sandbox Code Playgroud)

我有40000多张桌子,我想一口气全部换掉。

Uue*_*rdo 9

每个 ALTER 语句不能更改多个表;但您可以在 上使用查询information_schematables生成alter语句。

就像是

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

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