2008-10-17 4 views

ответ

398

SHOW TABLE STATUS WHERE Name = 'xxx'

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

+2

Если моя таблица повреждена, это просто показывает двигателя = NULL и имеет «комментарий» говорит мне, чтобы восстановить таблицу. Тем не менее, прежде чем я знаю, как отремонтировать таблицу, я предполагаю, что мне нужно знать движок (я не так уж далека от того, чтобы быть честным). Поэтому комментарий @ Jocker ниже был для меня гораздо более полезным. – harperville 2013-09-09 13:33:01

+0

@Greg, Должны ли мы использовать это решение или Jocker? – Pacerier 2015-02-24 05:30:26

+0

@Pacerier - Оба отлично работают. Разница в том, что это решение дает информацию для одной таблицы, в то время как решение Jocker показывает тип движка для всех таблиц в базе данных (хотя и более читабельно). – kramer65 2016-03-20 08:36:56

48
SHOW CREATE TABLE <tablename>; 

Меньше разборчивого, но более читаемого, чем SHOW TABLE STATUS.

35

или просто

show table status;

только, что это будет LLIST все таблицы на вашей базе данных.

+0

Почему-то возвращает 0 строк в моем случае ... – 2014-01-16 16:10:17

195

Чтобы показать список всех таблиц в базе данных и их двигателей, использовать этот SQL-запрос:

SELECT TABLE_NAME, 
     ENGINE 
FROM information_schema.TABLES 
WHERE TABLE_SCHEMA = 'dbname'; 

Заменить dbname с именем базы данных.

12

бит из подстройке в ответ Jocker (в я вывесил бы в качестве комментария, но у меня не хватает кармы пока):

SELECT TABLE_NAME, ENGINE FROM information_schema.TABLES where TABLE_SCHEMA = 'database' AND ENGINE IS NOT NULL; 

Это исключает взгляды MySQL из списка, которые не имеют двигатель.

9
SHOW CREATE TABLE <tablename>\G 

отформатирует намного лучше по сравнению с выходом

SHOW CREATE TABLE <tablename>; 

\G трюк также полезно помнить, для многих других запросов/команд.

0

перейдите в базу данных information_schema, вы найдете таблицу «таблицы», затем выберите ее;

Mysql> use information_schema; Mysql> выберите table_name, движок из таблиц;

4
mysqlshow -i <database_name> 

покажет информацию для всех таблиц конкретной базы данных.

mysqlshow -i <database_name> <table_name> 

будет делать это только для конкретной таблицы.

0

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

SHOW TABLE STATUS LIKE 'table'; 

Вы можете использовать как операторы, например:

SHOW TABLE STATUS LIKE 'field_data_%'; 
2

Если вы linux user:

Чтобы показать двигатели для всех таблиц для всех баз данных на сервере mysql, без таблиц information_schema, mysql, performance_schema:

less < <({ for i in $(mysql -e "show databases;" | cat | grep -v -e Database-e information_schema -e mysql -e performance_schema); do echo "--------------------$i--------------------"; mysql -e "use $i; show table status;"; done } | column -t) 

Вам может понравиться это, если вы на Linux, по крайней мере.

Откроет всю информацию по всем таблицам в less, нажмите -S, чтобы нарезать слишком длинные линии.

Пример вывода:

--------------------information_schema-------------------- 
Name              Engine    Version Row_format Rows Avg_row_length Data_length Max_data_length  Index_length Data_free Auto_increment Create_time Update_time Check_time C 
CHARACTER_SETS            MEMORY    10  Fixed  NULL 384    0   16434816   0    0   NULL   2015-07-13 15:48:45  NULL  N 
COLLATIONS             MEMORY    10  Fixed  NULL 231    0   16704765   0    0   NULL   2015-07-13 15:48:45  NULL  N 
COLLATION_CHARACTER_SET_APPLICABILITY      MEMORY    10  Fixed  NULL 195    0   16357770   0    0   NULL   2015-07-13 15:48:45  NULL  N 
COLUMNS              MyISAM    10  Dynamic  NULL 0    0   281474976710655  1024   0   NULL   2015-07-13 15:48:45  2015-07-13 1 
COLUMN_PRIVILEGES           MEMORY    10  Fixed  NULL 2565   0   16757145   0    0   NULL   2015-07-13 15:48:45  NULL  N 
ENGINES              MEMORY    10  Fixed  NULL 490    0   16574250   0    0   NULL   2015-07-13 15:48:45  NULL  N 
EVENTS              MyISAM    10  Dynamic  NULL 0    0   281474976710655  1024   0   NULL   2015-07-13 15:48:45  2015-07-13 1 
FILES              MEMORY    10  Fixed  NULL 2677   0   16758020   0    0   NULL   2015-07-13 15:48:45  NULL  N 
GLOBAL_STATUS            MEMORY    10  Fixed  NULL 3268   0   16755036   0    0   NULL   2015-07-13 15:48:45  NULL  N 
GLOBAL_VARIABLES           MEMORY    10  Fixed  NULL 3268   0   16755036   0    0   NULL   2015-07-13 15:48:45  NULL  N 
KEY_COLUMN_USAGE           MEMORY    10  Fixed  NULL 4637   0   16762755   0 

. 
. 
. 
3

Если вы используете MySQL Workbench, вы можете щелкнуть правой кнопкой мыши таблицу и выберите "изменить таблицу.

В этом окне вы можете увидеть свой Рабочий стол и изменить его.

Смежные вопросы