Một soi kèo bóng đá truoctran bắn bất cứ khi nào sự kiện được liên kết xảy ra trong cơ sở dữ liệu được xác định. Hiện tại, các sự kiện được hỗ trợ duy nhất làĐăng nhập
, DDL_Command_Start
, DDL_COMMAND_END
, Table_rewrite
vàSQL_Drop
. Hỗ trợ cho các sự soi kèo bóng đá truoctran bổ sung có thể được thêm vào trong các bản phát hành trong tương lai.
TheĐăng nhập
Sự kiện xảy ra khi người dùng được xác thực đăng nhập vào hệ thống. Bất kỳ lỗi nào trong quy trình kích soi kèo bóng đá truoctran cho sự kiện này có thể ngăn chặn đăng nhập thành công vào hệ thống.event_triggersđếnSai
Trong một chuỗi kết nối hoặc tệp cấu hình. Ngoài ra, bạn có thể khởi động lại hệ thống ở chế độ người dùng đơn (vì các soi kèo bóng đá truoctran bị vô hiệu hóa ở chế độ này).PostgresTrang tham chiếu để biết chi tiết về việc sử dụng chế độ người dùng đơn. TheĐăng nhập
Sự kiện cũng sẽ bắn trên các máy chủ dự phòng. Để ngăn các máy chủ trở nên không thể truy cập, các kích soi kèo bóng đá truoctran như vậy phải tránh viết bất cứ thứ gì vào cơ sở dữ liệu khi chạy trên chế độ chờ.Đăng nhập
soi kèo bóng đá truoctran. Lưu ý rằng, ví dụ, hủy kết nối trongPSQLsẽ không hủy bỏ trong tiến trìnhĐăng nhập
Trigger.
TheDDL_Command_Start
Sự soi kèo bóng đá truoctran xảy ra ngay trước khi thực hiệnTạo
, thay đổi
, Drop
, Nhãn bảo mật
, bình luận
, Grant
hoặcthu hồi
lệnh. Không kiểm tra xem đối tượng bị ảnh hưởng có tồn tại hay không tồn tại được thực hiện trước khi soi kèo bóng đá truoctran.DDL_Command_Start
cũng xảy ra ngay trước khi thực hiện AChọn vào
lệnh, vì điều này tương đương vớiTạo bảng dưới dạng
.
TheDDL_COMMAND_END
Sự soi kèo bóng đá truoctran xảy ra ngay sau khi thực hiện cùng một bộ lệnh này. Để có thêm chi tiết vềDDLCác soi kèo bóng đá truoctran động đã diễn ra, sử dụng chức năng trả lại thiết lậpPG_EVENT_TRIGGER_DDL_COMMANDS ()
từDDL_COMMAND_END
Mã soi kèo bóng đá truoctran (xemPhần 9.30). Lưu ý rằng các vụ cháy kích soi kèo bóng đá truoctran sau khi các hành động đã diễn ra (nhưng trước khi giao dịch thực hiện) và do đó, các danh mục hệ thống có thể được đọc như đã thay đổi.
TheSQL_Drop
Sự soi kèo bóng đá truoctran xảy ra ngay trướcDDL_COMMAND_END
Trình soi kèo bóng đá truoctran cho bất kỳ hoạt động nào làm giảm các đối tượng cơ sở dữ liệu. Để liệt kê các đối tượng đã bị loại bỏ, hãy sử dụng chức năng hoàn trả lạipg_event_trigger_dropped_objects ()
từSQL_Drop
Mã soi kèo bóng đá truoctran (xemPhần 9.30). Lưu ý rằng kích soi kèo bóng đá truoctran được thực thi sau khi các đối tượng đã bị xóa khỏi các danh mục hệ thống, vì vậy không thể tìm kiếm chúng nữa.
TheTable_rewrite
Sự soi kèo bóng đá truoctran xảy ra ngay trước khi bảng được viết lại bởi một số hành động của các lệnh13117_13130
vàthay đổi loại
. Trong khi các câu lệnh điều khiển khác có sẵn để viết lại một bảng, nhưcụm
vàVACUUM
, TheTable_rewrite
Sự kiện không được kích soi kèo bóng đá truoctran bởi chúng. Để tìm oid của bảng được viết lại, hãy sử dụng chức năngpg_event_trigger_table_rewrite_oid ()
(xemPhần 9.30). Để khám phá (các) lý do để viết lại, hãy sử dụng chức năng.
soi kèo bóng đá truoctran (giống như các chức năng khác) không thể được thực thi trong một giao dịch bị hủy bỏ. Do đó, nếu lệnh DDL không có lỗi, bất kỳ liên quan nàoDDL_COMMAND_END
Triggers sẽ không được thực thi. Ngược lại, nếu mộtDDL_Command_Start
Trình kích hoạt thất bại với lỗi, không có trình soi kèo bóng đá truoctran nào xảy ra và sẽ không có nỗ lực nào được thực hiện để tự thực hiện lệnh. Tương tự, nếu mộtDDL_COMMAND_END
14272_14438
Để biết danh sách đầy đủ các lệnh được hỗ trợ bởi cơ chế soi kèo bóng đá truoctran, xemPhần 38.2.
Trình soi kèo bóng đá truoctran được tạo bằng lệnhTạo Trình soi kèo bóng đá truoctran. Để tạo trình soi kèo bóng đá truoctran, trước tiên bạn phải tạo chức năng với loại trả về đặc biệtevent_trigger
. Hàm này không cần (và có thể không) trả về một giá trị;
Nếu có nhiều hơn một soi kèo bóng đá truoctran được xác định cho một sự kiện cụ thể, chúng sẽ bắn theo thứ tự bảng chữ cái bằng tên kích hoạt.
Một định nghĩa kích soi kèo bóng đá truoctran cũng có thể chỉ định AKhi
Điều soi kèo bóng đá truoctran sao cho, ví dụ, ADDL_Command_Start
Trigger chỉ có thể được bắn cho các lệnh cụ thể mà người dùng muốn chặn. Việc sử dụng phổ biến các kích soi kèo bóng đá truoctran như vậy là hạn chế phạm vi soi kèo bóng đá truoctran động DDL mà người dùng có thể thực hiện.
Nếu bạn thấy bất cứ điều gì trong tài liệu không chính xác, không khớpMẫu nàyĐể báo cáo vấn đề tài liệu.