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
.