PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Rufen Sie die Definition von Funktion, Sequenz, Typ usw. in Postgresql mit SQL-Abfrage ab

Um die Definition einer Funktion zu erhalten, verwenden Sie pg_get_functiondef() :

select pg_get_functiondef(oid)
from pg_proc
where proname = 'foo';

Es gibt ähnliche Funktionen, um die Definition eines Index, einer Ansicht, einer Regel usw. abzurufen. Einzelheiten finden Sie im Handbuch:http://www.postgresql.org /docs/current/static/functions-info.html

Etwas schwieriger ist es, die Definition eines Benutzertyps zu erhalten. Sie müssen information_schema.attributes abfragen dafür:

select attribute_name, data_type
from information_schema.attributes
where udt_schema = 'public'
  and udt_name = 'footype'
order by ordinal_position;

Daraus müssen Sie den create type wieder zusammensetzen Aussage.

Für weitere Details müssen Sie die Dokumentation des Systemkatalogs durchlesen:http ://www.postgresql.org/docs/current/static/catalogs.html

Aber Sie sollten information_schema bevorzugen Ansichten, wenn sie dieselben Informationen zurückgeben.