【发布时间】:2013-02-20 19:15:35
【问题描述】:
如何从 PHP 程序中检测 MySQL 数据库表是否正在使用 InnoDB 存储引擎?
原因 - PHP 程序需要利用数据库事务。 InnoDB 支持事务。 MyISAM(MySQL 默认存储引擎)没有。如果不支持事务,则程序需要失败。
【问题讨论】:
如何从 PHP 程序中检测 MySQL 数据库表是否正在使用 InnoDB 存储引擎?
原因 - PHP 程序需要利用数据库事务。 InnoDB 支持事务。 MyISAM(MySQL 默认存储引擎)没有。如果不支持事务,则程序需要失败。
【问题讨论】:
我更喜欢:
SHOW CREATE TABLE tablename\G
结束:
SHOW TABLE STATUS WHERE Name = 'xxx'
因为您可以轻松指定当前数据库之外的表,即:
SHOW CREATE TABLE database.table\G
\G 可以很好地格式化输出,但它是可选的。
【讨论】:
试试这个:
SHOW TABLE STATUS WHERE Name = 'xxx'
这将为您(除其他外)提供一个引擎列,这是您想要的。
或者如果你想要它在数据库级别
SELECT TABLE_NAME, ENGINE FROM information_schema.TABLES where TABLE_SCHEMA = 'dbname'
【讨论】: