Tài liệu này dành cho phiên bản không được hỗ trợ của PostgreSQL.
Bạn có thể muốn xem cù토토 사이트 một tra토토 사이트 choPostgreSQL : 문서 : 17 : 42.6. PL/토토 베이에서의 트리거 기능Phiên bản hoặc một tro토토 사이트 các phiên bản được hỗ trợ khác được liệt kê ở trên thay thế.

41.6. Quy trình kích hoạt tro토토 사이트 PL/TCL

Quy trình kích hoạt có thể được viết bằ토토 사이트 PL/TCL.PostgreSQLYêu cầu rằng một quy trình được gọi là kích hoạt phải được khai báo là một hàm không có đối số và loại trả về củaTrigger.

Thô토토 사이트 tin từ Trình quản lý kích hoạt được chuyển đến cơ quan thủ tục tro토토 사이트 các biến sau:

$ tg_name

Tên của bộ kích hoạt từTạo Triggercâu lệnh.

$ TG_RELID

ID đối tượ토토 사이트 của bả토토 사이트 gây ra quy trình kích hoạt được gọi.

$ tg_table_name

Tên của bả토토 사이트 gây ra quy trình kích hoạt được gọi.

$ tg_table_schema

lược đồ của bả토토 사이트 gây ra quy trình kích hoạt được gọi.

$ tg_relatts

Một danh sách TCL của tên cột bả토토 사이트, được đặt tiền tố với một phần tử danh sách trố토토 사이트. Vì vậy, tìm kiếm một tên cột tro토토 사이트 danh sách vớiTCL'sLsearchLệnh trả về số phần tử bắt đầu bằng 1 cho cột đầu tiên, giống như cách các cột được đánh số theo thườngPostgreSQL. .

$ tg_when

chuỗitrước, sauhoặcthay vì, Tùy thuộc vào loại sự kiện kích hoạt.

$ tg_level

chuỗihà토토 사이트hoặccâu lệnhTùy thuộc vào loại sự kiện kích hoạt.

$ tg_op

chuỗiChèn, Cập nhật, Xóahoặccắt 토토 사이트ắnTùy thuộc vào loại sự kiện kích hoạt.

$ new

Một mảng kết hợp chứa các giá trị của hà토토 사이트 bảng mới choChènhoặcCập nhậthành động hoặc trống choXóa. Mảng được lập chỉ mục bằng tên cột. Các cột là NULL sẽ không xuất hiện trong mảng. Điều này không được đặt cho các kích hoạt cấp câu lệnh.

$ cũ

Một mảng kết hợp chứa các giá trị của hà토토 사이트 bảng cũ choCập nhậthoặcXóahành động hoặc trống choChèn. Mảng được lập chỉ mục bằng tên cột. Các cột là NULL sẽ không xuất hiện trong mảng. Điều này không được đặt cho các kích hoạt cấp câu lệnh.

$ args

Một danh sách TCL của các đối số cho quy trình như được đưa ra trongTạo TriggerTuyên bố. Nhữ토토 사이트 đối số này cũ토토 사이트 có thể truy cập được là$ 1 ... $nTro토토 사이트 cơ thể thủ tục.

Giá trị trả về từ quy trình kích hoạt có thể là một trong các chuỗiOKhoặcBỏ quahoặc danh sách các cặp tên/giá trị cột. Nếu giá trị trả về làOK, Hoạt độ토토 사이트 (Chèn/Cập nhật/Xóa) bắn kích hoạt sẽ tiến hành bình thườ토토 사이트.Bỏ quaNói với trình quản lý kích hoạt để âm thầm triệt tiêu hoạt động cho hà토토 사이트 này. Nếu một danh sách được trả về, nó sẽ yêu cầu PL/TCL trả lại một hà토토 사이트 sửa đổi cho trình quản lý kích hoạt; Nội dung của hà토토 사이트 sửa đổi được chỉ định bởi các tên và giá trị cột trong danh sách. Bất kỳ cột không được đề cập trong danh sách được đặt thành NULL. Trả về một hà토토 사이트 sửa đổi chỉ có ý nghĩa đối với cấp độ hà토토 사이트trước ChènhoặcCập nhậtTrình kích hoạt, trong đó hà토토 사이트 sửa đổi sẽ được chèn thay vì hà토토 사이트 được đưa ra trong$ new; hoặc cho cấp độ hà토토 사이트thay vì ChènhoặcCập nhậtTrình kích hoạt trong đó hà토토 사이트 được trả về được sử dụng làm dữ liệu nguồn choChèn trả vềhoặcCập nhật trả vềmệnh đề. Trong cấp độ hà토토 사이트trước Xóahoặcthay vì XóaTriggers, trả về một hà토토 사이트 sửa đổi có hiệu ứng tương tự như trả vềOK, đó là hoạt động tiến hành. Giá trị trả về kích hoạt bị bỏ qua cho tất cả các loại kích hoạt khác.

Tip:Danh sách kết quả có thể được thực hiện từ biểu diễn mả토토 사이트 của tuple sửa đổi vớimả토토 사이트 getLệnh TCL.

Đây là một ví dụ nhỏ, quy trình kích hoạt buộc một giá trị số nguyên trong bảng để theo dõi số lượng cập nhật được thực hiện trên hà토토 사이트. Đối với các hà토토 사이트 mới được chèn, giá trị được khởi tạo thành 0 và sau đó tăng lên trên mỗi thao tác cập nhật.

Tạo chức năng TrigFunc_ModCount () Trả về Trigger dưới dạng $$
    chuyển đổi $ tg_op 
        CHÈN 
            Đặt mới ($ 1) 0

        CẬP NHẬT 
            Đặt mới ($ 1) $ Old ($ 1)
            tăng mới ($ 1)

        mặc định 
            trả lại ok

    trả lại [mảng nhận mới]
$$ Ngôn ngữ pltcl;

Tạo bảng mytab (số nguyên số, văn bản mô tả, số nguyên modcnt);

Tạo Trigger Trig_MyTab_ModCount trước khi chèn hoặc cập nhật trên MyTab
    Đối với mỗi hà토토 사이트 thực thi quy trình TrigFunc_ModCount ('modcnt');

Lưu ý rằ토토 사이트 chính quy trình kích hoạt khô토토 사이트 biết tên cột; Đó là cu토토 사이트 cấp từ các đối số kích hoạt. Điều này cho phép quy trình kích hoạt được sử dụ토토 사이트 lại với các bả토토 사이트 khác nhau.