Чи є простий спосіб побачити код, який використовується для створення представлення даних за допомогою клієнтського командного рядка PostgreSQL?
Щось схоже на SHOW CREATE VIEW
MySQL.
Чи є простий спосіб побачити код, який використовується для створення представлення даних за допомогою клієнтського командного рядка PostgreSQL?
Щось схоже на SHOW CREATE VIEW
MySQL.
Відповіді:
Потрібно повернутися сюди, щоб подивитися вгору pg_get_viewdef
(як запам'ятати це !!), тому шукав більш пам'ятну команду ... і отримав її:
\d+ viewname
Ви можете побачити подібні види команд, ввівши \?
командний рядок pgsql.
Порада про бонус: Команда emacs sql-postgres
робить pgsql набагато приємнішим (редагувати, копіювати, вставляти, історію команд).
\dv
перераховані всі перегляди
select pg_get_viewdef('viewname', true)
Перелік усіх цих функцій доступний у посібнику:
http://www.postgresql.org/docs/current/static/functions-info.html
select pg_get_viewdef('viewname'::regclass, true)
SELECT pg_get_viewdef(to_regclass('viewname'))
(потрібно принаймні v9.4).
select definition from pg_views where viewname = 'my_view'
select definition from pg_views where schemaname = 'my_schema' and viewname = 'my_view'
Якщо вам потрібна версія ANSI SQL-92:
select view_definition from information_schema.views where table_name = 'view_name';
GoodNews з версії 9.6 і вище, редагування перегляду тепер вихідне з psql. Просто викликайте \ev
команду. Визначення перегляду відображатимуться у налаштованому редакторі.
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.views, ви завжди отримаєте перезаписану версію свого оригінального DDL.
Переглянута версія може бути або не збігатися з оригінальним сценарієм DDL.
Якщо Менеджер правил переписає визначення перегляду, ваша початкова DLL буде втрачена, і ви зможете прочитати єдину переписану версію свого перегляду.
Не всі перегляди переписані, але якщо ви використовуєте підбір або приєднання, можливо, ваші погляди будуть перероблені.