Existe-t-il un moyen simple de voir le code utilisé pour créer une vue à l'aide du client de ligne de commande PostgreSQL?
Quelque chose comme celui SHOW CREATE VIEW
de MySQL.
postgresql
Elias Dorneles
la source
la source
\dv
répertorie toutes les vuesUne liste de toutes ces fonctions est disponible dans le manuel:
http://www.postgresql.org/docs/current/static/functions-info.html
la source
select pg_get_viewdef('viewname'::regclass, true)
SELECT pg_get_viewdef(to_regclass('viewname'))
(nécessite au moins la v9.4).la source
select definition from pg_views where schemaname = 'my_schema' and viewname = 'my_view'
Si vous voulez une version ANSI SQL-92:
la source
GoodNews à partir de la version 9.6 et supérieure, l'édition de vues est maintenant native de psql. Appelez simplement la
\ev
commande. Les définitions de vue s'afficheront dans votre éditeur configuré.julian@assange=# \ev {your_view_names}
Prime. Une commande utile pour interagir avec le tampon de requête.
la source
C'est une petite chose à souligner.
En utilisant la fonction pg_get_viewdef ou pg_views ou information_schema.views, vous obtiendrez toujours une version réécrite de votre DDL d'origine.
La version modifiée peut être ou non la même que votre script DDL d'origine.
Si le gestionnaire de règles réécrit votre définition de vue, votre DLL d'origine sera perdue et vous pourrez lire uniquement la version réécrite de votre définition de vue.
Toutes les vues ne sont pas réécrites, mais si vous utilisez la sous-sélection ou les jointures, vos vues seront probablement réécrites.
la source