2008-10-17 6 views

Antwort

398

SHOW TABLE STATUS WHERE Name = 'xxx'

Dies wird Ihnen geben (unter anderem) eine Engine Spalte, das ist, was Sie wollen.

+2

Wenn meine Tabelle beschädigt ist, es einfach ist zeigt Motor = NULL und hat einen „Kommentar“ mir zu sagen, um die Tabelle zu reparieren. Bevor ich jedoch weiß, wie ich den Tisch reparieren kann, muss ich den Motor kennen (ich bin noch nicht so weit gekommen, um ehrlich zu sein.) Daher war @ Jockers Kommentar unten viel hilfreicher für mich. – harperville

+0

@Greg, Sollten wir diese oder Jockers Lösung verwenden? – Pacerier

+0

@ Pacerier - Beide funktionieren gut. Der Unterschied besteht darin, dass diese Lösung die Informationen für eine Tabelle liefert, während Jockers Lösung den Motortyp für alle Tabellen in einer Datenbank anzeigt (und gleichzeitig etwas lesbarer ist). – kramer65

48
SHOW CREATE TABLE <tablename>; 

Weniger analysierbar, aber besser lesbar als SHOW TABLE STATUS.

35

oder nur

show table status;

nur, dass dies alle Tabellen in Ihrer Datenbank LLIST.

+0

Aus irgendeinem Grund gibt 0 Zeilen in meinem Fall zurück ... –

+0

@NikolaiSamteladze, Haben Sie Tabellen in der ausgewählten db? – Pacerier

195

Um eine Liste aller Tabellen in einer Datenbank und deren Motoren zu zeigen, diese SQL-Abfrage verwenden:

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

ersetzen dbname mit Ihren Datenbanknamen.

+2

Das ist großartig b/c es filtert alles außer Tabellenname und Engine. – Tone

+0

Um Motor von bestimmten Tabelle zu erhalten, können Sie verwenden: 'SELECT MOTOR VON INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = '' UND TABLE_NAME = ''' – userlond

12

Bit eines zwicken Jocker Antwort (ich würde als Kommentar posten, aber ich habe nicht genug Karma noch):

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

Dies schließt MySQL Ansichten aus der Liste, die nicht über ein Motor.

9
SHOW CREATE TABLE <tablename>\G 

wird es viel schöner formatiert verglichen mit dem Ausgang des

SHOW CREATE TABLE <tablename>; 

Der \G Trick ist auch nützlich für viele andere Abfragen/Befehle zu erinnern.

+0

\ G Hack nur unter cli mysql ist – gaRex

0

gehe zur information_schema datenbank dort findest du 'tables' table dann wähle es aus;

Mysql> verwenden information_schema; Mysql> select Tabellenname, Engine aus Tabellen;

4
mysqlshow -i <database_name> 

zeigt die Informationen für alle Tabellen einer bestimmten Datenbank an.

mysqlshow -i <database_name> <table_name> 

wird dies nur für eine bestimmte Tabelle tun.

+1

Dies beantwortet die Frage nicht, da die Engines für alle Tabellen angezeigt werden. Der Initiator der Frage suchte nach Informationen zu einer bestimmten Tabelle. – Tass

0

Noch eine andere Art und Weise, vielleicht der kürzeste zu bekommen Status eines einzelnen oder aufeinander abgestimmten Satz von Tabellen:

SHOW TABLE STATUS LIKE 'table'; 

Sie können dann LIKE verwenden, zB:

SHOW TABLE STATUS LIKE 'field_data_%'; 
2

Wenn Sie ein sind linux-Benutzer:

Um die Motoren für alle Tabellen für alle Datenbanken auf einem mySQL-Server zu zeigen, ohne Tabellen 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) 

Sie könnten dies lieben, wenn Sie auf Linux zumindest sind.

Öffnen Sie alle Informationen für alle Tabellen in less, drücken Sie -S, um überlange Linien zu hacken.

Beispiel Ausgabe:

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

Wenn Sie die MySQL Workbench verwenden, können Sie die Tabelle der rechten Maustaste und wählen Sie ‚Tabelle ändern‘.

In diesem Fenster können Sie Ihre Tabelle Engine sehen und auch ändern.

Verwandte Themen