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';
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
これらは指摘すべき小さなことです。
関数pg_get_viewdef、pg_views、またはinformation_schema.views を使用すると、常に元のDDLの書き換えられたバージョンを取得できます。
書き直されたバージョンは、元のDDLスクリプトと同じである場合と同じでない場合があります。
ルールマネージャがビュー定義を書き換えると、元のDLLは失われ、書き換えられたバージョンのビュー定義のみを読み取ることができます。
すべてのビューが書き換えられるわけではありませんが、副選択または結合を使用すると、ビューが書き換えられる可能性があります。