Apakah ada cara mudah untuk melihat kode yang digunakan untuk membuat tampilan menggunakan klien baris perintah PostgreSQL?
Sesuatu seperti SHOW CREATE VIEWdari MySQL.
Apakah ada cara mudah untuk melihat kode yang digunakan untuk membuat tampilan menggunakan klien baris perintah PostgreSQL?
Sesuatu seperti SHOW CREATE VIEWdari MySQL.
Jawaban:
Terus harus kembali ke sini untuk mencari pg_get_viewdef(bagaimana mengingat itu !!), jadi mencari perintah yang lebih mudah diingat ... dan mendapatkannya:
\d+ viewname
Anda dapat melihat jenis-jenis perintah serupa dengan mengetikkan \?pada baris perintah pgsql.
Kiat bonus: Perintah emacs sql-postgresmembuat pgsql jauh lebih menyenangkan (edit, salin, tempel, riwayat perintah).
\dvdaftar semua tampilan
select pg_get_viewdef('viewname', true)
Daftar semua fungsi tersebut tersedia di manual:
http://www.postgresql.org/docs/current/static/functions-info.html
select pg_get_viewdef('viewname'::regclass, true)
SELECT pg_get_viewdef(to_regclass('viewname'))(membutuhkan setidaknya v9.4)
select definition from pg_views where viewname = 'my_view'
select definition from pg_views where schemaname = 'my_schema' and viewname = 'my_view'
Jika Anda menginginkan versi ANSI SQL-92:
select view_definition from information_schema.views where table_name = 'view_name';
GoodNews dari v.9.6 dan lebih tinggi, Lihat editing sekarang asli dari psql. Hanya memohon \evperintah. Lihat definisi akan ditampilkan di editor Anda yang dikonfigurasi.
julian@assange=# \ev {your_view_names}
Bonus. Beberapa perintah yang berguna untuk berinteraksi dengan buffer permintaan.
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
Ini adalah hal kecil untuk ditunjukkan.
Dengan menggunakan fungsi pg_get_viewdef atau pg_views atau information_schema.views, Anda akan selalu mendapatkan versi penulisan ulang dari DDL asli Anda.
Versi yang ditulis ulang mungkin atau tidak sama dengan skrip DDL asal Anda.
Jika Manajer Aturan menulis ulang definisi tampilan Anda, DLL asli Anda akan hilang dan Anda hanya dapat membaca versi definisi tampilan Anda yang ditulis ulang.
Tidak semua tampilan ditulis ulang tetapi jika Anda menggunakan sub-pilih atau bergabung mungkin tampilan Anda akan ditulis ulang.