【问题标题】:ALTER TABLE ALL TABLES ROW_FORMAT=Fixed;ALTER TABLE ALL TABLES ROW_FORMAT=固定;
【发布时间】:2017-01-27 18:38:33
【问题描述】:

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

ALTER TABLE table_name ROW_FORMAT=Fixed;

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

【问题讨论】:

  • 我会说 40000 个表是一个真正应该解决的问题,但如果你有那么多表,如果不完全重新开始就解决这个问题可能为时已晚。

标签: mysql sql alter


【解决方案1】:

每个 ALTER 语句不能更改多个表;但您可以使用information_schema.tables 上的查询来生成更改语句。

类似

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

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

【讨论】:

    猜你喜欢
    • 2010-10-02
    • 2020-09-30
    • 2017-02-18
    • 2011-02-24
    • 1970-01-01
    • 1970-01-01
    • 2012-04-09
    • 2018-04-27
    • 2012-09-17
    相关资源
    最近更新 更多