Alter Table Engine = InnoDB 可以同时在多个表上运行吗?

Posted

技术标签:

【中文标题】Alter Table Engine = InnoDB 可以同时在多个表上运行吗?【英文标题】:Can Alter Table Engine = InnoDB be run on multiple tables at the same time? 【发布时间】:2011-09-13 03:53:54 【问题描述】:

说到 mysqlphpMyAdmin,我不是新手,但我更接近新手而不是专家。希望我的要求是可行的,并且有人会为我提供一个简单的剪切粘贴 SQL 查询来实现它。

我需要将 12 个 db 中的大约 9 个表从 MyISAM 转换为 InnoDB,我希望我可以通过单个查询来处理一个 db 中的所有表,而不必单击并等待每个表PHPMyAdmin 中的每个表。基本上,有没有办法通过在 PHPMyAdmin 中运行的查询一次在多个表上运行“ALTER TABLE fooENGINE = InnoDB”?

【问题讨论】:

【参考方案1】:
select concat('alter table ',table_name, ' engine = innodb;')
from information_schema.tables
where table_schema in ('db1','db2',....,'dbN')

然后运行查询输出。

【讨论】:

以上是关于Alter Table Engine = InnoDB 可以同时在多个表上运行吗?的主要内容,如果未能解决你的问题,请参考以下文章

mysql转换引擎的方法

oracle中比较alter table t move 和alter table t shrink space

如何用oracle里面的alter table语句去添加一个列约束

MySql Table错误:is marked as crashed and last (automatic?) 和 Error: Table "mysql"."inno

sql [ALTER TABLE]要(1)添加,删除或修改列,或(2)在现有表中添加和删除各种约束。 #Syntax #Alter_table

我如何知道数据库触发器是 DROP_TABLE 还是 ALTER_TABLE?