2

如何从 PHP 程序中检测 MySQL 数据库表是否正在使用 InnoDB 存储引擎?

原因 - PHP 程序需要利用数据库事务。InnoDB 支持事务。MyISAM(MySQL 默认存储引擎)没有。如果不支持事务,则程序需要失败。

4

2 回答 2

1

尝试这个:

SHOW TABLE STATUS WHERE Name = 'xxx'

这将为您(除其他外)提供一个 Engine 列,这就是您想要的。

或者如果你想要它在数据库级别

SELECT TABLE_NAME, ENGINE FROM information_schema.TABLES where TABLE_SCHEMA = 'dbname'
于 2013-03-06T05:49:49.573 回答
0

我会比较喜欢:

SHOW CREATE TABLE tablename\G

超过:

SHOW TABLE STATUS WHERE Name = 'xxx'

因为您可以轻松地指定当前数据库之外的表,即:

SHOW CREATE TABLE database.table\G

\G格式输出很好,但它是可选的。

于 2013-03-06T05:53:26.510 回答