And*_*ake 2 mysql sql innodb alter-table mariadb
我想将数据库中所有表的 row_format 更改为动态。选择数据库后,我可以执行“ALTER TABLE tablenameROW_FORMAT=DYNAMIC;” 手动进行。不幸的是,大约有 100 张桌子需要更换。
如何将特定数据库中与 DYNAMIC 不同的每个表的行格式更改为动态?
我一直在尝试,但找不到有效的解决方案。
您不能一次 ALTER TABLE 更改多个表,但可以通过以下方式生成所有必要的 ALTER TABLE 语句:
SELECT CONCAT(
'ALTER TABLE `', TABLE_SCHEMA, '`.`', TABLE_NAME, '` ',
'ROW_FORMAT=DYNAMIC;'
) AS _alter
FROM INFORMATION_SCHEMA.TABLES
WHERE ENGINE='InnoDB' AND ROW_FORMAT <> 'DYNAMIC';
Run Code Online (Sandbox Code Playgroud)
捕获其输出并将其作为 SQL 脚本运行。