MYSQL批量改表引擎

标签 mysql

我需要使用 MYSQL 将数据库引擎中的整个表从 Innodb 更改为 MyISAM。我该怎么做?以前有人这样做过吗?任何帮助或建议将不胜感激。谢谢!

最佳答案

你可以这样尝试:

SELECT  CONCAT('ALTER TABLE `', table_name, '` ENGINE=MyISAM;') 
FROM    INFORMATION_SCHEMA.TABLES 
WHERE   TABLE_SCHEMA = 'yourdatabase'
AND     `ENGINE` = 'Innodb'
AND     `TABLE_TYPE` = 'BASE TABLE'
ORDER BY table_name DESC;

查询将为您提供更改引擎所需执行的 ALTER 查询。

像这样在存储过程中添加 ALTER 查询:

DROP PROCEDURE IF EXISTS myProc;
DELIMITER //
CREATE PROCEDURE myProc
BEGIN
//Here you can put the ALTER statements.
END//

DELIMITER ;

关于MYSQL批量改表引擎,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33560951/

相关文章:

c# - 在 Windows Phone 8.1 中的单独文本 block 上检索 PHP 数据

mysql - 在 SQLAlchemy 中,如何创建唯一对?

MySQL - 显示给定财政年度的每月所有金额

MySQL CLI 客户端将数据显示为十六进制

mysql - mysql创建触发器的权限

mysql - LEFT JOIN 只显示第一个表的第一行一次

html - 与事件状态的链接

mysql - 订购 GROUP_CONCAT 列 (MySQL)

mysql - 优化 mySQL LEFT JOIN

mysql - 如何将 "ON update current timestamp"添加到现有表列