Zunächst einmal kann Ihre Abfrage nach Tabellenkommentaren vereinfacht werden, indem Sie sie in den entsprechenden Objektkennungstyp umwandeln :
SELECT description
FROM pg_description
WHERE objoid = 'myschema.mytbl'::regclass;
Der Schemateil ist optional. Wenn Sie es weglassen, Ihr aktueller search_path entscheidet über die Sichtbarkeit jeder Tabelle namens mytbl .
Noch besser , gibt es dedizierte Funktionen in PostgreSQL, um diese Abfragen zu vereinfachen und zu kanonisieren. Das Handbuch:
obj_description( object_oid , catalog_name ) ... Kommentar für ein Datenbankobjekt erhalten
shobj_description( object_oid , catalog_name ) ... Kommentar für ein gemeinsames Datenbankobjekt erhalten
Beschreibung für Tabelle:
SELECT obj_description('myschema.mytbl'::regclass, 'pg_class');
Beschreibung für die Datenbank:
SELECT pg_catalog.shobj_description(d.oid, 'pg_database') AS "Description"
FROM pg_catalog.pg_database d
WHERE datname = 'mydb';
Wie finden Sie das heraus?
Nun, das Lesen des ausgezeichneten Handbuchs ist aufschlussreich. :)
Aber in diesem Fall gibt es einen direkteren Weg:die meisten psql meta-Befehle werden mit einfachem SQL implementiert. Starten Sie eine Sitzung mit psql -E , um die Magie hinter den Vorhängen zu sehen. Das Handbuch:
-E --echo-hidden
Geben Sie die tatsächlichen Abfragen wieder, die von \d generiert wurden und andere Backslash-Befehle. Sie können dies verwenden, um die internen Vorgänge von psql zu untersuchen. Dies entspricht dem Setzen der Variable ECHO_HIDDEN auf on .