221 votes

Comment voir le code CREATE VIEW pour une vue dans PostgreSQL ?

Existe-t-il un moyen facile de voir le code utilisé pour créer une vue en utilisant le client de ligne de commande PostgreSQL ?

Quelque chose comme le SHOW CREATE VIEW de MySQL.

287voto

EoghanM Points 4383

J'ai dû revenir ici pour chercher pg_get_viewdef (comment s'en souvenir !!), j'ai donc cherché une commande plus mémorable... et je l'ai trouvée :

\d+ viewname

Vous pouvez voir des sortes de commandes similaires en tapant \? à la ligne de commande pgsql.

Conseil bonus : la commande emacs sql-postgres rend pgsql beaucoup plus agréable (édition, copier, coller, historique des commandes).

171voto

a_horse_with_no_name Points 100769
select pg_get_viewdef('viewname', true)

Une liste de toutes ces fonctions est disponible dans le manuel :

http://www.postgresql.org/docs/current/static/functions-info.html

69voto

Clodoaldo Neto Points 26723
select definition from pg_views where viewname = 'my_view'

21voto

Steve Judd Points 211

Si vous voulez une version ANSI SQL-92 :

select view_definition from information_schema.views where table_name = 'view_name';

12voto

brain90 Points 158

Bonne nouvelle pour les versions 9.6 et supérieures. L'édition des vues est maintenant native de psql. Il suffit d'invoquer \ev commande. Les définitions des vues s'afficheront dans votre éditeur configuré.

julian@assange=# \ev your_view_names

Bonus. Quelques commandes utiles pour interagir avec le tampon de requête.

Query Buffer
  \e [FILE] [LINE]       edit the query buffer (or file) with external editor
  \ef [FUNCNAME [LINE]]  edit function definition with external editor
  \ev [VIEWNAME [LINE]]  edit view definition with external editor
  \p                     show the contents of the query buffer
  \r                     reset (clear) the query buffer
  \s [FILE]              display history or save it to file
  \w FILE                write query buffer to file

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X