Câu trả lời theo số:
-
Không; if
S2không thành công, toàn bộ giao dịch bị hủy bỏ và chỉ có thể được khôi phục lại. -
Có lẽ có một sự hiểu lầm. Câu lệnh SQL
BEGINbắt đầu một giao dịch khác vớiBEGINbắt đầu một khối PL / pgSQL. Cái sau không không bắt đầu giao dịch.Nếu không có lệnh SQL rõ ràng
BEGIN, mọi câu lệnh chạy trong giao dịch của chính nó (“autocommit”).Tất cả các câu lệnh trong một hàm được thực thi trong một giao dịch duy nhất.
-
Bạn không thể có
COMMIT(hoặcROLLBACK) trong một hàm. -
Đúng. Đây là câu hỏi tương tự như 1., chỉ ở câu phủ định.