【发布时间】:2017-01-27 18:38:33
【问题描述】:
如何为数据库中的所有表运行命令?
ALTER TABLE table_name ROW_FORMAT=Fixed;
我有 40000 多张桌子,我想一口气全部换掉。
【问题讨论】:
-
我会说 40000 个表是一个真正应该解决的问题,但如果你有那么多表,如果不完全重新开始就解决这个问题可能为时已晚。
如何为数据库中的所有表运行命令?
ALTER TABLE table_name ROW_FORMAT=Fixed;
我有 40000 多张桌子,我想一口气全部换掉。
【问题讨论】:
每个 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>
【讨论】: