MariaDB 在一个命令中将所有表的 row_format 设置为动态
Posted
技术标签:
【中文标题】MariaDB 在一个命令中将所有表的 row_format 设置为动态【英文标题】:MariaDB set row_format to dynamic to all tables in one command 【发布时间】:2022-01-01 00:22:46 【问题描述】:我想在我的数据库中的所有表上将 row_format 更改为动态。选择数据库后,我可以执行“ALTER TABLE tablename
ROW_FORMAT=DYNAMIC;”手动完成。不幸的是,大约有 100 个表需要更改。
如何将特定数据库中与 DYNAMIC 不同的每个表的行格式更改为动态?
我一直在尝试,但找不到可行的解决方案。
【问题讨论】:
写一个循环? 【参考方案1】:您一次不能 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';
捕获其输出并将其作为 SQL 脚本运行。
【讨论】:
以上是关于MariaDB 在一个命令中将所有表的 row_format 设置为动态的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 MySQL/MariaDB 查询数据库所有表的所有列?
如何在 mariadb 列存储中将“仅模式同步”指定为系统变量