Назад | Перейти на главную страницу

Как я могу проверить из командной строки, что все таблицы в моей БД являются InnoDB?

Как я могу быстро проверить из командной строки, что все таблицы в моей БД являются InnoDB?

Подсчет таблиц из каждого механизма хранения

SELECT COUNT(1) table_count,engine 
FROM information_schema.tables 
WHERE table_schema NOT IN ('information_schema','mysql') 
GROUP BY engine;

или чтобы проверить количество механизмов хранения каждой базы данных

SELECT COUNT(1) table_count,table_schema,engine 
FROM information_schema.tables 
WHERE table_schema NOT IN ('information_schema','mysql') 
GROUP BY table_schema,engine;

или подсчитайте все таблицы, не относящиеся к InnoDB (должно быть 0)

SELECT COUNT(1) table_count 
FROM information_schema.tables 
WHERE table_schema NOT IN ('information_schema','mysql') 
AND engine <> 'InnoDB';

Чтобы перечислить имена таблиц, которые не являются InnoDB, и какую базу данных таблица хранится

SELECT table_schema,table_name 
FROM information_schema.tables 
WHERE table_schema NOT IN ('information_schema','mysql') 
AND engine <> 'InnoDB';
mysql> USE xyz;
mysql> SHOW TABLE STATUS;

Он дает вам список всех таблиц и их движков.