Først og fremmest kan din forespørgsel efter tabelkommentarer forenkles ved hjælp af en cast til den passende objekt-id-type :
SELECT description
FROM pg_description
WHERE objoid = 'myschema.mytbl'::regclass;
Skemadelen er valgfri. Hvis du udelader det, vil din nuværende search_path
bestemmer synligheden af enhver tabel med navnet mytbl
.
Bedre endnu , er der dedikerede funktioner i PostgreSQL for at forenkle og kanonisere disse forespørgsler. Manualen:
obj_description(
object_oid
, catalog_name
)
... få kommentar til et databaseobjekt
shobj_description(
object_oid
, catalog_name
)
... få kommentar til et delt databaseobjekt
Beskrivelse for tabel:
SELECT obj_description('myschema.mytbl'::regclass, 'pg_class');
Beskrivelse for database:
SELECT pg_catalog.shobj_description(d.oid, 'pg_database') AS "Description"
FROM pg_catalog.pg_database d
WHERE datname = 'mydb';
Hvordan finder du ud af det?
Nå, det er oplysende at læse den fremragende manual. :)
Men der er en mere direkte rute i dette tilfælde:mest psql
meta-kommandoer implementeres med almindelig SQL. Start en session med psql -E
, for at se magien bag gardinerne. Manualen:
-E
--echo-hidden
Ekko de faktiske forespørgsler genereret af \d
og andre backslash-kommandoer. Du kan bruge dette til at studere psqls interne operationer. Dette svarer til at indstille variablen ECHO_HIDDEN
til on
.