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 .