För det första kan din fråga efter tabellkommentarer förenklas med hjälp av en cast till lämplig objektidentifieringstyp :
SELECT description
FROM pg_description
WHERE objoid = 'myschema.mytbl'::regclass;
Schemadelen är valfri. Om du utelämnar det, din nuvarande search_path
bestämmer synligheten för alla tabeller som heter mytbl
.
Ännu bättre , det finns dedikerade funktioner i PostgreSQL för att förenkla och kanonisera dessa frågor. Manualen:
obj_description(
object_oid
,catalog_name
)
... få kommentar för ett databasobjekt
shobj_description(
object_oid
,catalog_name
)
... få kommentar för ett delat databasobjekt
Beskrivning för tabell:
SELECT obj_description('myschema.mytbl'::regclass, 'pg_class');
Beskrivning för databas:
SELECT pg_catalog.shobj_description(d.oid, 'pg_database') AS "Description"
FROM pg_catalog.pg_database d
WHERE datname = 'mydb';
Hur får du reda på det?
Tja, att läsa den utmärkta manualen är upplysande. :)
Men det finns en mer direkt väg i det här fallet:mest psql
metakommandon implementeras med vanlig SQL. Starta en session med psql -E
, för att se magin bakom gardinerna. Manualen:
-E
--echo-hidden
Eka de faktiska frågorna som genereras av
\d
och andra omvänt snedstreck kommandon. Du kan använda detta för att studera psqls interna verksamhet. Detta motsvarar att ställa in variabelnECHO_HIDDEN
tillon
.