Bagaimana cara mencetak fungsi dan memicu kode sumber di postgresql? tolong beri tahu saya jika ada yang tahu kueri untuk menampilkan fungsi, memicu kode sumber.
postgresql
Ganesh
sumber
sumber
select * from pg_trigger;
atau, jika Anda juga ingin melihat tabel mana yang masing-masing pemicu berlaku untukselect tgrelid::regclass, tgname from pg_trigger;
FWIW `Jawaban:
\df+
di psql memberi Anda kode sumber.sumber
\df
untuk menemukan nama fungsi Anda, kemudian\x
untuk output diperluas, lalu\df+ name_of_function
\df ltxtquery
.\x ON
adalah suatu keharusan untuk tampilan transposUntuk fungsi:
Anda dapat meminta tampilan pg_proc, seperti berikut ini
Cara lain adalah hanya menjalankan commont
\df
dan\ef
yang dapat membuat daftar fungsi.Ini akan menampilkan kode sumber fungsi.
Untuk pemicu:
Saya tidak tahu apakah ada cara langsung untuk mendapatkan kode sumber. Ketahuilah cara berikut ini, mungkin itu akan membantu Anda!
Ini akan menunjukkan kepada Anda detail dari pemicu tabel. Biasanya pemicu menggunakan fungsi. Jadi Anda bisa mendapatkan kode sumber fungsi pemicu seperti yang saya tunjukkan di atas!
sumber
Berikut adalah beberapa contoh dari PostgreSQL-9.5
Daftar tampilan:
\df+
\dy+
Definisi tampilan:
sumber
\x
pertama untuk mengaktifkan tampilan yang diperluas juga membantu keterbacaan.Ada banyak kemungkinan. Cara paling sederhana adalah dengan hanya menggunakan pgAdmin dan dapatkan ini dari jendela SQL. Namun jika Anda ingin mendapatkan ini secara programatik maka periksa
pg_proc
danpg_trigger
katalog sistem atauroutines
dantriggers
pandangan dari skema informasi (itu cara standar SQL, tetapi mungkin tidak mencakup semua fitur terutama PostgreSQL-spesifik). Sebagai contoh:sumber
SELECT view_definition FROM information_schema.views WHERE table_schema = ? AND table_name = ?
pgproc.prosrc
kolomSedikit lebih dari sekadar menampilkan fungsi, tetapi juga tentang bagaimana mendapatkan fasilitas edit di tempat.
\ef <function_name>
sangat berguna. Ini akan membuka kode sumber fungsi dalam format yang dapat diedit. Anda tidak hanya dapat melihatnya, Anda juga dapat mengedit dan menjalankannya.Hanya
\ef
tanpa function_name akan membuka template CREATE FUNCTION yang dapat diedit.Untuk referensi lebih lanjut -> https://www.postgresql.org/docs/9.6/static/app-psql.html
sumber
\sf
function_name di psql menghasilkan kode sumber yang dapat diedit dari fungsi tunggal.Dari https://www.postgresql.org/docs/9.6/static/app-psql.html :
sumber
selain jawaban @ franc Anda dapat menggunakan ini dari antarmuka sql:
(diambil dari sini: http://www.postgresql.org/message-id/Pine.BSF.4.10.10009140858080.28013-100000@megazone23.bigpanda.com )
sumber
Sejak Versi: psql (9.6.17, server 11.6)
Saya sudah mencoba semua jawaban di atas tetapi untuk saya
df sepertinya tidak bekerja untuk saya.
sumber