在MySQL中,无法为特定数据库指定存储引擎,仅针对单个表。但是,您可以在一个会话期间指定要使用的存储引擎:
SET storage_engine=InnoDB;
因此您不必为每个表指定它。
如果确实所有表都使用InnoDB,我如何确认?
答案 0 :(得分:120)
如果使用SHOW CREATE TABLE,则必须从查询中解析引擎。
从INFORMATION_SCHEMA数据库中选择是不好的做法,因为开发者保留随时更改其架构的权利(尽管不太可能)。
要使用的正确查询是 SHOW TABLE STATUS - 您可以获取有关数据库中所有表的信息:
SHOW TABLE STATUS FROM `database`;
或者对于特定的表格:
SHOW TABLE STATUS FROM `database` LIKE 'tablename';
您将获得的其中一列是Engine。
答案 1 :(得分:15)
SELECT * FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'db name' AND ENGINE != 'InnoDB'
答案 2 :(得分:3)
show create table <table>
应该可以解决问题。