gunakan pg_getfunctiondef
; lihat fungsi informasi sistem. pg_getfunctiondef
telah ditambahkan di PostgreSQL 8.4.
SELECT pg_get_functiondef('proc_name'::regproc);
Untuk membuang semua fungsi dalam skema, Anda dapat membuat kueri tabel sistem di pg_catalog
; katakan jika Anda menginginkan semuanya dari public
:
SELECT pg_get_functiondef(f.oid)
FROM pg_catalog.pg_proc f
INNER JOIN pg_catalog.pg_namespace n ON (f.pronamespace = n.oid)
WHERE n.nspname = 'public';
sepele untuk mengubah di atas untuk mengatakan "dari semua skema kecuali yang dimulai dengan pg_
" sebagai gantinya jika itu yang Anda inginkan.
Di psql
Anda dapat membuang ini ke file dengan:
psql -At dbname > /path/to/output/file.sql <<"__END__"
... the above SQL ...
__END__
Untuk menjalankan output di DB lain, gunakan sesuatu seperti:
psql -1 -v ON_ERROR_STOP -f /path/to/output/file.sql target_db_name
Namun, jika Anda mereplikasi fungsi di antara DB seperti ini, pertimbangkan untuk menyimpan salinan otoritatif dari definisi fungsi sebagai skrip SQL dalam sistem kontrol revisi seperti svn atau git, sebaiknya dikemas sebagai ekstensi PostgreSQL. Lihat ekstensi pengemasan.