Existe uma maneira fácil de ver o código usado para criar uma exibição usando o cliente de linha de comando do PostgreSQL?
Algo como o SHOW CREATE VIEW
do MySQL.
postgresql
Elias Dorneles
fonte
fonte
\dv
lista todas as visualizaçõesUma lista de todas essas funções está disponível no manual:
http://www.postgresql.org/docs/current/static/functions-info.html
fonte
select pg_get_viewdef('viewname'::regclass, true)
SELECT pg_get_viewdef(to_regclass('viewname'))
(requer pelo menos a v9.4).fonte
select definition from pg_views where schemaname = 'my_schema' and viewname = 'my_view'
Se você deseja uma versão ANSI SQL-92:
fonte
GoodNews da v.9.6 e superior, a edição de visualização agora é nativa do psql. Apenas invoque o
\ev
comando. As definições de exibição serão exibidas no seu editor configurado.julian@assange=# \ev {your_view_names}
Bônus. Algum comando útil para interagir com o buffer de consulta.
fonte
Isso é uma coisinha a salientar.
Usando a função pg_get_viewdef ou pg_views ou information_schema.views, você sempre terá uma versão reescrita do seu DDL original.
A versão rewited pode ou não ser igual ao seu script DDL de origem.
Se o Rule Manager reescrever sua definição de exibição, sua DLL original será perdida e você poderá ler a única versão reescrita de sua definição de exibição.
Nem todas as visualizações são reescritas, mas se você usar a sub-seleção ou a associação, provavelmente suas visualizações serão reescritas.
fonte