Обнаружение MySQL InnoDB через PHP

Как я могу определить, использует ли таблица базы данных MySQL механизм хранения InnoDB из программы PHP?

Причина - программе PHP необходимо использовать транзакции базы данных. InnoDB поддерживает транзакции. MyISAM (механизм хранения по умолчанию MySQL) - нет. Программа должна завершиться ошибкой, если транзакции не поддерживаются.


person leepowers    schedule 06.03.2013    source источник


Ответы (2)


Попробуй это:

SHOW TABLE STATUS WHERE Name = 'xxx'

Это даст вам (среди прочего) столбец Engine, который вам и нужен.

или если вы хотите это на уровне базы данных

SELECT TABLE_NAME, ENGINE FROM information_schema.TABLES where TABLE_SCHEMA = 'dbname'
person Sankalp Mishra    schedule 06.03.2013

Я бы предпочел:

SHOW CREATE TABLE tablename\G

Над:

SHOW TABLE STATUS WHERE Name = 'xxx'

Потому что вы можете легко указать таблицы вне текущей базы данных, то есть:

SHOW CREATE TABLE database.table\G

\G красиво форматирует вывод, но это необязательно.

person Sam    schedule 06.03.2013