PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Come recuperare il commento di un database PostgreSQL?

Prima di tutto, la tua query per i commenti sulla tabella può essere semplificata utilizzando un cast al tipo di identificatore oggetto appropriato :

SELECT description
FROM   pg_description
WHERE  objoid = 'myschema.mytbl'::regclass;

La parte dello schema è facoltativa. Se lo ometti, il tuo attuale search_path decide la visibilità di qualsiasi tabella denominata mytbl .

Meglio ancora , ci sono funzioni dedicate in PostgreSQL per semplificare e canonizzare queste query. Il manuale:

obj_description( object_oid , catalog_name ) ... ottieni un commento per un oggetto di database

shobj_description( object_oid , catalog_name ) ... ottieni un commento per un oggetto database condiviso

Descrizione per la tabella:

SELECT obj_description('myschema.mytbl'::regclass, 'pg_class');

Descrizione per database:

SELECT pg_catalog.shobj_description(d.oid, 'pg_database') AS "Description"
FROM   pg_catalog.pg_database d
WHERE  datname = 'mydb';

Come lo scopri?

Ebbene, leggere l'ottimo manuale è illuminante. :)
Ma in questo caso c'è un percorso più diretto:la maggior parte di psql i meta comandi sono implementati con un semplice SQL. Avvia una sessione con psql -E , per vedere la magia dietro le tende. Il manuale:

-E
--echo-hidden

Fai eco alle query effettive generate da \d e altri comandi di barra rovesciata. Puoi usarlo per studiare le operazioni interne di psql. Equivale a impostare la variabile ECHO_HIDDEN su on .