2016-11-10 2 views
0

Ich versuche Tabellenstrukturen von mehreren MySQL-Tabellen (wie Liste der Spalten pro Tabelle) anzuzeigen, die wie bestimmte Zeichenfolge entsprichtAnzeige Tabellenstruktur aus mehreren MySQL-Tabellen

SHOW CREATE TABLE TABLE_NAME LIKE '%CATEGORY%'

ich dies tat, aber es funktioniert nicht zeige die Struktur der Tabelle.

`select * from `information_schema`.`tables` 
    where table_name like 'category%' AND TABLE_SCHEMA = 'DB_name'` 

Dank

Antwort

0

Um die vollständige Struktur der Tabelle zu erhalten, würden Sie viele Tabellen in der INFORMATION_SCHEMA, nicht nur Tabellen abfragen müssen. Die TABLES enthält nur Attribute der Tabelle, nicht ihrer Spalten, Indizes oder Einschränkungen.

Es gibt keine Tabelle INFORMATION_SCHEMA, die die vollständige CREATE TABLE-Anweisung wie SHOW CREATE TABLE anzeigt.

SHOW CREATE TABLE akzeptiert nur einen Tabellennamen als Argument.

wäre die einfachste Lösung, um eine Liste der Tabellen zu erhalten, die Ihr Muster entsprechen:

select table_name from `information_schema`.`tables` 
where table_name like 'category%' AND TABLE_SCHEMA = 'DB_name' 

Und dann holt die Ergebnisse dieser Abfrage in einer Schleife, und führen Sie SHOW CREATE TABLE DBName.<table_name> von der Abfrage zurück für jede Tabelle .

+0

Das Problem mit diesem ist, ich habe viele Tabellen, die diesen Namen hat, warum ich nach irgendeiner Methode vielleicht eine Schleife suchte, die dieses Ergebnis auf einmal anzeigen kann. So etwas wie 'WhileLoop() BEGIN DECLARE Tabellenname VARCHAR (100); SET tabelle_name = 'kategorie'; WHILE Tabellenname LIKE 'Kategorie%' DO 'Get Tabellennamen und' END WHILE; ' –

+0

Ja, das ist genau das, was ich meine - eine Schleife. Vielleicht möchten Sie lernen, etwas Code zu schreiben, um das zu tun. Sie könnten eine gespeicherte MySQL-Prozedur oder buchstäblich jede andere Programmiersprache verwenden. Wie du willst. –