Jawaban berdasarkan nomor:
-
Tidak; jika
S2gagal, seluruh transaksi dibatalkan dan hanya dapat dibatalkan. -
Mungkin ada kesalahpahaman. Pernyataan SQL
BEGINyang memulai transaksi adalah sesuatu yang sangat berbeda dariBEGINyang memulai blok PL/pgSQL. Yang terakhir ini tidak memulai transaksi.Jika tidak ada perintah SQL eksplisit
BEGIN, setiap pernyataan berjalan dalam transaksinya sendiri (“autocommit”).Semua pernyataan dalam suatu fungsi dieksekusi dalam satu transaksi.
-
Anda tidak dapat memiliki
COMMIT(atauROLLBACK) dalam suatu fungsi. -
Ya. Ini adalah pertanyaan yang sama dengan 1., hanya negatifnya.