PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Wie rufe ich den Kommentar einer PostgreSQL-Datenbank ab?

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 .