2012-05-23 29 views
6

Trình kích hoạt AFTER INSERT (chức năng được viết bằng pl/PGsql) có kích hoạt trong giao dịch riêng biệt so với chèn ban đầu không?SAU KHI kích hoạt INSERT trong giao dịch riêng biệt?

Điều tôi quan tâm là nếu trình kích hoạt trải nghiệm ngoại lệ một số loại.
Trình kích hoạt có thể được cuộn lại mà không có chèn ban đầu bị ảnh hưởng không?

+1

Giao dịch riêng biệt đó có thể được cuộn lại độc lập với giao dịch chính không? – wildplasser

Trả lời

13

Tất cả trình kích hoạt PostgreSQL thực thi trong cùng một giao dịch như giao dịch đã kích hoạt chúng.

Chỉnh sửa: Bạn cũng có thể sử dụng LISTEN + NOTIFY để gửi thư từ trình kích hoạt đến mã thực thi bên ngoài giao dịch. Trong trường hợp đó, thông báo sẽ chỉ được gửi tại thời điểm một cam kết thành công. Lỗi trong trình lắng nghe sẽ không quay trở lại giao dịch kích hoạt.

6

Quy trình kích hoạt chạy trong cùng một giao dịch làm sự kiện kích hoạt có liên quan. Nhưng tác động của một thủ tục kích hoạt có thể được cuộn lại một cách riêng biệt.

Bạn phải thêm exception handling vào trình kích hoạt sau.

Các vấn đề liên quan