2017-11-18 2 views
1

Ich versuche, eine Liste aller Tabellen, gefolgt von ihren Spalten einer Datenbank in mysql zu erstellen. Zum Beispiel, wenn ich zwei Tabellen Tabelle 1 und Tabelle 2 mit ihren jeweiligen Spalten möchte ich die Ausgabe etwas wie folgt aus:mysql: Liste aller Tabellen mit ihren Spalten

Table1: col_1, col_2, col_3

Table2: col_a, col_b, col_c, col_d

ich diese Abfrage todo geschrieben haben, so

select TABLE_NAME as tn, CONCAT_WS (', ', SELECT COLUMN_NAME 
              from information_schema.columns 
              where TABLE_NAME = tn) 
from information_schema.columns 
where table_schema = 'pgstudies' 
order by table_name,ordinal_position; 

Wenn betreibe ich diesen Code es einen Fehler zurückgibt:

1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT COLUMN_NAME from information_schema.columns where TABLE_NAME = tn) from ' at line 1

Würden Sie mir bitte mitteilen, wie diese Fehler zu beheben oder ein anderes Verfahren präsentieren gleichen Ergebnisse zu erhalten.

Antwort

1

GROUP_CONCAT wird den Trick tun.

SELECT table_name, GROUP_CONCAT(column_name ORDER BY ordinal_position SEPARATOR ', ') as columns 
FROM information_schema.columns 
WHERE table_schema = 'pgstudies' 
GROUP BY table_name 
ORDER BY table_name; 
Verwandte Themen