Phiên bản được hỗ trợ:hiện tại(173691_382216 / 15 / 14 / 13
Phiên bản phát triển:18 / Devel
Phiên bản không được hỗ trợ:12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3

9,29. soi kèo bóng đá truoctran hoạt sự kiện

POSTGRESQLCung cấp các chức soi kèo bóng đá truoctran trợ giúp này để truy xuất thông tin từ các kích hoạt sự kiện.

Để biết thêm thông tin về kích hoạt sự soi kèo bóng đá truoctran, xemChương 40.

9.29.1. Nắm bắt các thay đổi ở cuối lệnh

PG_EVENT_TRIGGER_DDL_COMMANDS() →SETOF Record

PG_EVENT_TRIGGER_DDL_COMMANDSTrả về danh sáchDDLCác lệnh được thực thi bởi mỗi hành động của người dùng, khi được gọi trong một hàm được gắn vàoDDL_COMMAND_ENDKích hoạt sự soi kèo bóng đá truoctran. Nếu được gọi trong bất kỳ ngữ cảnh nào khác, một lỗi được nêu ra.PG_EVENT_TRIGGER_DDL_COMMANDSTrả về một hàng cho mỗi lệnh cơ sở được thực thi; Một số lệnh là một câu SQL duy nhất có thể trả về nhiều hơn một hàng. Hàm này trả về các cột sau:

tên loại Mô tả
classId oid oid của danh mục đối tượng thuộc về
objid oid oid của chính đối tượng
objsubid Số nguyên ID đối tượng phụ (ví dụ: số thuộc tính cho một cột)
Command_TAG Text thẻ lệnh
object_type Text Loại đối tượng
Schema_name Text Tên của lược đồ đối tượng thuộc về, nếu có; nếu không thìnull. Không có trích dẫn được áp dụng.
Object_identity Text Kết xuất văn bản của nhận dạng đối tượng, Lược đồ đủ điều soi kèo bóng đá truoctran. Mỗi định danh được bao gồm trong danh tính được trích dẫn nếu cần thiết.
in_extension Boolean Đúng nếu lệnh là một phần của tập lệnh mở rộng
lệnh PG_DDL_COMMAND Một đại diện hoàn chỉnh của lệnh, ở định dạng nội bộ. Điều này không thể được đầu ra trực tiếp, nhưng nó có thể được chuyển sang các chức soi kèo bóng đá truoctran khác để có được các thông tin khác nhau về lệnh.

9.29.2. Các đối tượng xử lý bị rơi bởi lệnh ddl

pg_event_trigger_dropped_objects() →SETOF Record

pg_event_trigger_dropped_objectsTrả về danh sách tất cả các đối tượng bị rơi bởi lệnh trong đóSQL_DropSự soi kèo bóng đá truoctran được gọi là. Nếu được gọi trong bất kỳ bối cảnh nào khác, một lỗi được nêu ra. Hàm này trả về các cột sau:

tên loại Mô tả
classID OID oid của danh mục đối tượng thuộc về
​​objid oid oid của chính đối tượng
objsubid Số nguyên ID đối tượng phụ (ví dụ: số thuộc tính cho một cột)
Bản gốc Boolean Đúng nếu đây là một trong những đối tượng gốc của việc xóa
bình thường Boolean Đúng nếu có mối quan hệ phụ thuộc bình thường trong biểu đồ phụ thuộc dẫn đến đối tượng này
IS_TEMDEN Boolean Đúng nếu đây là đối tượng tạm thời
object_type Text loại đối tượng
Schema_name Text Tên của lược đồ đối tượng thuộc về, nếu có; nếu không thìnull. Không có trích dẫn được áp dụng.
object_name Text Tên của đối tượng, nếu sự kết hợp của lược đồ và tên có thể được sử dụng như một định danh duy nhất cho đối tượng; nếu không thìnull. Không có trích dẫn được áp dụng và tên không bao giờ là sơ đồ.
Object_identity Text Kết xuất văn bản của nhận dạng đối tượng, trình độ lược đồ. Mỗi định danh được bao gồm trong danh tính được trích dẫn nếu cần thiết.
địa chỉ_names Text [] Một mảng, cùng vớiobject_typeđịa chỉ_args, có thể được sử dụng bởiPG_GET_OBject_AddressHàm để tạo lại địa chỉ đối tượng trong một máy chủ từ xa chứa một đối tượng có tên giống hệt nhau của cùng một loại.
địa chỉ_args Text [] Bổ sung chođịa chỉ_names

Thepg_event_trigger_dropped_objectsChức soi kèo bóng đá truoctran có thể được sử dụng trong trình kích hoạt sự kiện như thế này:

tạo chức soi kèo bóng đá truoctran test_event_trigger_for_drops ()
        Trả về Event_Trigger Ngôn ngữ plpgsql như $$
TUYÊN BỐ
    hồ sơ obj;
BẮT ĐẦU
    Đối với obj trong select * từ pg_event_trigger_dropped_objects ()
    Vòng lặp
        Nâng cao thông báo ' % đối tượng bị rơi: % %. % %',
                     tg_tag,
                     obj.object_type,
                     obj.schema_name,
                     obj.object_name,
                     obj.Object_identity;
    Kết thúc vòng lặp;
KẾT THÚC;
$$;
Tạo sự kiện Trình kích hoạt test_event_trigger_for_drops
   Trên sql_drop
   Thực thi chức soi kèo bóng đá truoctran test_event_trigger_for_drops ();

9.29.3. Xử lý một sự soi kèo bóng đá truoctran viết lại bảng

Các chức soi kèo bóng đá truoctran được hiển thị trongBảng 9.102Cung cấp thông tin về một bảng mà ATable_rewriteSự soi kèo bóng đá truoctran vừa được gọi. Nếu được gọi trong bất kỳ ngữ cảnh nào khác, một lỗi được nêu ra.

Bảng 9.102. Bảng viết lại các chức soi kèo bóng đá truoctran thông tin

chức soi kèo bóng đá truoctran

Mô tả

PG_EVENT_TRIGGER_TABLE_REWRITE_OID() →OID

Trả về oid của bảng sắp được viết lại.

pg_event_trigger_table_rewrite_rey() →Số nguyên

Trả về một mã giải thích (các) lý do để viết lại. Giá trị là một bitmap được xây dựng từ các giá trị sau:1(bảng đã thay đổi sự kiên trì của nó),2(Giá trị mặc định của cột đã thay đổi),420428_204668(Phương thức truy cập bảng đã thay đổi).


Các chức soi kèo bóng đá truoctran này có thể được sử dụng trong một kích hoạt sự kiện như thế này:

Tạo chức soi kèo bóng đá truoctran test_event_trigger_table_rewrite_oid ()
 Trả về Event_Trigger
 Ngôn ngữ plpgsql như
$$
BẮT ĐẦU
  Nâng cao thông báo 'Bảng viết lại % cho lý do %',
                pg_event_trigger_table_rewrite_oid () :: regclass,
                PG_EVENT_TRIGGER_TABLE_REWRITE_REEY ();
KẾT THÚC;
$$;

Tạo sự kiện kích hoạt test_table_rewrite_oid
                  Trên table_rewrite
   Thực thi chức soi kèo bóng đá truoctran test_event_trigger_table_rewrite_oid ();

Gửi hiệu chỉnh

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ớp Kinh nghiệm của bạn với tính soi kèo bóng đá truoctran cụ thể hoặc yêu cầu làm rõ thêm, Vui lòng sử dụngMẫu nàyĐể báo cáo vấn đề tài liệu.