Eli*_*les 153 postgresql
有没有一种简单的方法可以使用PostgreSQL命令行客户端查看用于创建视图的代码?
SHOW CREATE VIEW来自MySQL的东西.
Eog*_*anM 204
保持不得不回到这里查找pg_get_viewdef(如何记住!!),所以寻找一个更难忘的命令......并得到它:
\d+ viewname
Run Code Online (Sandbox Code Playgroud)
您可以通过\?在pgsql命令行输入来查看类似的命令.
额外提示:emacs命令sql-postgres使pgsql更加愉快(编辑,复制,粘贴,命令历史记录).
a_h*_*ame 102
select pg_get_viewdef('viewname', true)
Run Code Online (Sandbox Code Playgroud)
手册中提供了所有这些功能的列表:
http://www.postgresql.org/docs/current/static/functions-info.html
Clo*_*eto 42
select definition from pg_views where viewname = 'my_view'
Run Code Online (Sandbox Code Playgroud)
Ste*_*udd 13
如果您想要ANSI SQL-92版本:
select view_definition from information_schema.views where table_name = 'view_name';
Run Code Online (Sandbox Code Playgroud)
小智 12
在psqlcli 中,您可以使用
\d+ <yourViewName>
\sv <yourViewName>
Run Code Online (Sandbox Code Playgroud)
输出如下:
\d+ v_ma_students
View "public.v_ma_students"
Column | Type | Collation | Nullable | Default | Storage | De
scription
--------+-----------------------+-----------+----------+---------+----------+---
SOMETHINGS HERE
View definition:
SELECT student.sno,
student.sname,
student.ssex,
student.sage,
student.sdept
FROM student
WHERE student.sdept::text = 'MA'::text;
Options: check_option=cascaded
\sv v_ma_students
CREATE OR REPLACE VIEW public.v_ma_students AS
SELECT student.sno,
student.sname,
student.ssex,
student.sage,
student.sdept
FROM student
WHERE student.sdept::text = 'MA'::text
WITH CASCADED CHECK OPTION
Run Code Online (Sandbox Code Playgroud)
小智 10
这些都是需要指出的小事。
使用函数pg_get_viewdef或pg_viewsinformation_schema.views,您将始终获得原始 DDL 的重写版本。
重写的版本可能与原始 DDL 脚本相同,也可能不同。
如果规则管理器重写您的视图定义,您的原始 DLL 将丢失,并且您将只能读取视图定义的重写版本。
并非所有视图都会被重写,但如果您使用子选择或联接,您的视图可能会被重写。
来自v.9.6及更高版本的GoodNews,视图编辑现在来自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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
86698 次 |
| 最近记录: |