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
.