You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MariaDB如何用单命令将指定库所有表row_format改为DYNAMIC

MariaDB批量修改表行格式为DYNAMIC的解决方案

方法1:数据库内生成SQL批量执行

  1. 首先选中目标数据库:
USE 你的数据库名称;
  1. 执行以下语句生成所有需要修改的ALTER命令,只会匹配当前库内行格式不为DYNAMIC的表,不会重复修改已符合要求的表:
SELECT CONCAT('ALTER TABLE `', TABLE_NAME, '` ROW_FORMAT = DYNAMIC;') AS 待执行SQL
FROM information_schema.TABLES
WHERE TABLE_SCHEMA = DATABASE()
  AND ROW_FORMAT != 'DYNAMIC';
-- 如果你只需要修改InnoDB引擎的表,可以在WHERE条件中追加 AND ENGINE = 'InnoDB'
  1. 复制查询结果中的所有ALTER语句,在当前数据库下直接执行即可完成批量修改。

方法2:服务器命令行一键执行

如果你在Linux服务器上操作,可以直接通过mysql命令拼接执行,不需要手动复制SQL:

# 替换命令中的<用户名> <密码> <目标数据库名>为实际信息
mysql -u<用户名> -p'<密码>' <目标数据库名> -Nse "SELECT CONCAT('ALTER TABLE \`', TABLE_NAME, '\` ROW_FORMAT = DYNAMIC;') FROM information_schema.TABLES WHERE TABLE_SCHEMA = DATABASE() AND ROW_FORMAT != 'DYNAMIC'" | mysql -u<用户名> -p'<密码>' <目标数据库名>

注意事项

  • 操作前务必对全库进行备份,避免修改异常导致数据损坏
  • 数据量较大的表执行ALTER时会锁表,建议选择业务低峰期操作
  • 修改完成后可执行以下语句校验所有表的行格式是否符合要求:
SELECT TABLE_NAME, ROW_FORMAT FROM information_schema.TABLES WHERE TABLE_SCHEMA = DATABASE();

内容的提问来源于stack exchange,提问作者Andehake

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 00:45:04