Как увидеть код CREATE VIEW для представления в PostgreSQL?



есть ли простой способ увидеть код, используемый для создания представления с помощью клиента командной строки PostgreSQL?



что-то вроде SHOW CREATE VIEW из MySQL.

752   6  

6 ответов:

все время приходилось возвращаться сюда, чтобы посмотреть вверх pg_get_viewdef (как помню!!), поэтому искал более запоминающуюся команду... и получил его:

\d+ viewname

вы можете увидеть подобные виды команд, введя \? в командной строке pgsql.

бонус совет: команда emacs sql-postgres делает pgsql намного более приятным (редактирование, копирование, вставка, история команд).

select pg_get_viewdef('viewname', true)

список всех этих функций доступен в руководстве:

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

select definition from pg_views where viewname = 'my_view'

Если вы хотите версию ANSI SQL-92:

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

GoodNews от V. 9. 6 и выше, редактирование вида теперь является родным для psql. Просто вызовите его с помощью этой команды, определения представления будут отображаться в Редакторе по умолчанию.

julian@assange=# \ev {your_view_names}

бонус. Некоторые полезные команды для взаимодействия с буфером запросов.

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

Это маленькая вещь, чтобы указать.
С помощью функции pg_get_viewdef или pg_views или information_schema.просмотров вы всегда получите перезаписанную версию вашего оригинального DDL.
Перезаписанная версия может быть или не быть такой же, как ваш сценарий DDL originl.

Если диспетчер правил перепишет ваше определение представления, ваша исходная DLL будет потеряна, и вы сможете прочитать только перезаписанную версию вашего определения представления.
Не все представления перезаписываются но если вы используете sub-select или joins, вероятно, ваши представления будут перезаписаны.

Comments

    Ничего не найдено.