2008-10-17 10 views

Odpowiedz

398

SHOW TABLE STATUS WHERE Name = 'xxx'

to daje (między innymi) kolumny Engine, która jest, co chcesz.

+2

Jeśli moja tabela jest uszkodzony, to po prostu pokazuje Silnik = NULL i ma „Komentarz” mówi mi do naprawy tabeli. Zanim jednak dowiem się, jak naprawić stół, domyślam się, że muszę znać silnik (nie dotarłem tak daleko, aby być szczerym.) Dlatego komentarz @ Jockera poniżej był dla mnie o wiele bardziej pomocny. – harperville

+0

@Greg, czy powinniśmy użyć tego rozwiązania lub Jockera? – Pacerier

+0

@Pacerier - Oba działają dobrze. Różnica polega na tym, że to rozwiązanie podaje informacje dla jednej tabeli, podczas gdy rozwiązanie Jockera pokazuje typ silnika dla wszystkich tabel w bazie danych (chociaż jest również nieco bardziej czytelny). – kramer65

48
SHOW CREATE TABLE <tablename>; 

Mniej można parsować, ale bardziej czytelny niż SHOW TABLE STATUS.

35

lub po prostu

show table status;

tylko, że będzie to LList wszystkie tabele w bazie danych.

+0

Z jakiegoś powodu zwraca 0 wierszy w moim przypadku ... –

+0

@NikolaiSamteladze, Czy masz tabele w wybranym db? – Pacerier

195

Aby wyświetlić listę wszystkich tabel w bazie danych i ich silników, należy użyć tej kwerendy SQL:

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

Wymień dbname z nazwą bazy danych.

+2

To jest świetne b/c odfiltrowuje wszystko oprócz nazwy i silnika. – Tone

+0

Aby silnik określonej tabeli, można użyć: 'Wybierz silnik OD information_schema.TABLES GDZIE TABLE_SCHEMA = '' I TABLE_NAME = ''' – userlond

12

Trochę dopracowujemy odpowiedzi Jocker (wtedy zamieścić jako komentarz, ale nie mam jeszcze wystarczająco dużo karmy):

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

Wyklucza to MySQL widoki z listy, które nie mają silnik.

9
SHOW CREATE TABLE <tablename>\G 

sformatuje jest dużo ładniejszy niż na wyjściu

SHOW CREATE TABLE <tablename>; 

\G Sztuką jest również przydatny do zapamiętania dla wielu innych zapytań/poleceń.

+0

\ G Hack jest tylko pod cli mysql – gaRex

0

przejdź do bazy danych info_schema tam znajdziesz tabelę tabel, a następnie wybierz ją;

Mysql> use information_schema; Mysql> wybierz table_name, silnik z tabel;

4
mysqlshow -i <database_name> 

wyświetli informacje o wszystkich tabelach określonej bazy danych.

mysqlshow -i <database_name> <table_name> 

zrobi to tylko dla określonego stołu.

+1

To nie odpowiada na pytanie, ponieważ wyświetla silniki dla wszystkich tabel. Inicjatorem pytania było poszukiwanie informacji dotyczących konkretnej tabeli. – Tass

0

Jeszcze innym sposobem, chyba najkrótsza, aby uzyskać status jednym lub dopasowane zestaw tabel:

SHOW TABLE STATUS LIKE 'table'; 

Następnie można użyć LIKE operatorów na przykład:

SHOW TABLE STATUS LIKE 'field_data_%'; 
2

Jeżeli jesteś użytkownik linux:

Aby wyświetlić silniki dla wszystkich tabel dla wszystkich baz danych na serwerze mysql, bez tabel 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) 

Może się to spodoba, jeśli jesteś na Linuksie.

Powoduje otwarcie wszystkich informacji dotyczących wszystkich tabel w pozycji less, naciśnij przycisk -S, aby rozciąć zbyt długie linie.

Przykâadowa:

--------------------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

Jeśli używasz MySQL Workbench, można kliknąć prawym przyciskiem myszy tabelę i wybierz 'alter table'.

W tym oknie można zobaczyć swój silnik tabeli, a także go zmienić.

Powiązane problemy