Ten eerste kan uw zoekopdracht voor tabelopmerkingen worden vereenvoudigd met behulp van een cast naar het juiste object-ID-type :
SELECT description
FROM pg_description
WHERE objoid = 'myschema.mytbl'::regclass;
Het schemagedeelte is optioneel. Als je het weglaat, wordt je huidige search_path bepaalt de zichtbaarheid van een tabel met de naam mytbl .
Beter nog , er zijn specifieke functies in PostgreSQL om deze query's te vereenvoudigen en te canoniseren. De handleiding:
obj_description( object_oid , catalog_name ) ... krijg commentaar voor een database-object
shobj_description( object_oid , catalog_name ) ... commentaar krijgen voor een gedeeld database-object
Beschrijving voor tafel:
SELECT obj_description('myschema.mytbl'::regclass, 'pg_class');
Beschrijving voor database:
SELECT pg_catalog.shobj_description(d.oid, 'pg_database') AS "Description"
FROM pg_catalog.pg_database d
WHERE datname = 'mydb';
Hoe kom je daar achter?
Welnu, het lezen van de uitstekende handleiding is verhelderend. :)
Maar er is in dit geval een meer directe route:de meeste psql meta-commando's worden geïmplementeerd met gewone SQL. Start een sessie met psql -E , om de magie achter de gordijnen te zien. De handleiding:
-E --echo-hidden
Echo de werkelijke zoekopdrachten gegenereerd door \d en andere backslash-opdrachten. U kunt dit gebruiken om de interne bewerkingen van psql te bestuderen. Dit komt overeen met het instellen van de variabele ECHO_HIDDEN naar on .