繁体   English   中英

将MyISAM转换为InnoDB数据库

[英]Convert MyISAM to InnoDB database

我正在尝试使用以下语句将整个数据库从MyISAM转换为InnoDB:

use information_schema;

SELECT CONCAT('ALTER TABLE ',table_schema,'.',table_name,' ENGINE=InnoDB;') 
FROM information_schema.tables 
WHERE engine = "MyISAM" AND table_type = "BASE TABLE" AND table_schema = "database";

而我得到的结果是每个表都发生了更改,例如:

ALTER TABLE database.action ENGINE=InnoDB;

当我检查表引擎时,它们仍然是MyISAM。 奇怪的是,如果我单独运行命令

ALTER TABLE action ENGINE='InnoDB';

它对该表工作正常。

关于如何对整个数据库进行转换的任何技巧?

您正在运行的SELECT语句仅生成字符串。 它生成的字符串未作为SQL语句执行。 您需要从该查询中获取结果集,然后作为单独的步骤实际执行这些语句。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM