如何检测MySQL数据库表是否在PHP程序中使用InnoDB存储引擎?
原因 - PHP程序需要利用数据库事务 . InnoDB支持交易 . MyISAM(MySQL默认存储引擎)没有 . 如果不支持事务,则程序需要失败 .
试试这个:
SHOW TABLE STATUS WHERE Name = 'xxx'
这将为您(以及其他)提供一个引擎列,这是您想要的 .
或者如果你想在数据库级别
SELECT TABLE_NAME, ENGINE FROM information_schema.TABLES where TABLE_SCHEMA = 'dbname'
我会比较喜欢:
SHOW CREATE TABLE tablename\G
过度:
因为您可以轻松指定当前数据库之外的表,即:
SHOW CREATE TABLE database.table\G
\G 很好地格式化输出,但它是可选的 .
\G
2 回答
试试这个:
这将为您(以及其他)提供一个引擎列,这是您想要的 .
或者如果你想在数据库级别
我会比较喜欢:
SHOW CREATE TABLE tablename\G
过度:
SHOW TABLE STATUS WHERE Name = 'xxx'
因为您可以轻松指定当前数据库之外的表,即:
SHOW CREATE TABLE database.table\G
\G
很好地格式化输出,但它是可选的 .