Phiên bản được hỗ trợ:hiện tại(17)16 / 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.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1 / 8.0 / 7.4

42.6. Chức năng kích kèo bóng đá c1 trong PL/TCL#

Các chức năng kích kèo bóng đá c1 có thể được viết bằng PL/TCL.PostgreSQLYêu cầu rằng một hàm được gọi là kích kèo bóng đá c1 phải được khai báo là một hàm không có đối số và loại trả về củaTrigger.

Thông tin từ Trình quản lý kích kèo bóng đá c1 được chuyển đến thân hàm trong các biến sau:

$ tg_name

Tên của bộ kích kèo bóng đá c1 từTạo Triggercâu lệnh.

$ tg_relid

ID đối tượng của bảng gây ra chức năng kích kèo bóng đá c1 được gọi.

$ tg_table_name

Tên của bảng gây ra chức năng kích kèo bóng đá c1 được gọi.

$ tg_table_schema

lược đồ của bảng khiến hàm kích kèo bóng đá c1 được gọi.

$ tg_relatts

Một danh sách TCL của tên cột bảng, được tiền tố với một phần tử danh sách trống. Vì vậy, tìm kiếm một tên cột kèo bóng đá c1 danh sách vớiTCL'sLsearchLệnh trả về số phần tử bắt đầu với 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 kèo bóng đá c1.

$ tg_level

chuỗihànghoặccâu lệnhTùy thuộc vào loại sự kiện kích kèo bóng đá c1.

$ tg_op

chuỗiChèn, Cập nhật, Xóahoặccắt ngắnTùy thuộc vào loại sự kiện kích kèo bóng đá c1.

$ new

Một mảng kết hợp chứa các giá trị của hàng 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ũ

Một mảng kết hợp chứa các giá trị của hàng 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.

$ args

Một danh sách TCL của các đối số cho hàm như được đưa ra kèo bóng đá c1Tạo TriggerTuyên bố. Những đối số này cũng có thể truy cập được là$ 1...$nkèo bóng đá c1 cơ thể chức năng.

Giá trị trả về từ hàm kích kèo bóng đá c1 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, kèo bóng đá c1 động (Chèn/Cập nhật/Xóa) bắn kích kèo bóng đá c1 sẽ tiến hành bình thường.Bỏ quaNói với trình quản lý kích kèo bóng đá c1 để âm thầm triệt tiêu kèo bóng đá c1 động cho hàng 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àng sửa đổi cho trình quản lý kích kèo bóng đá c1;trước ChènhoặcCập nhậtTriggers, kèo bóng đá c1 đó hàng sửa đổi sẽ được chèn thay vì hàng được đưa ra kèo bóng đá c1$ new; hoặc cho cấp độ hàngthay vì ChènhoặcCập nhậtTrình kích kèo bóng đá c1 trong đó hàng đượ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 đề. kèo bóng đá c1 cấp độ hàngtrước Xóahoặcthay vì XóaTrình kích kèo bóng đá c1, trả về một hàng sửa đổi có hiệu ứng tương tự như trả vềOK, đó là kèo bóng đá c1 động tiến hành. Giá trị trả về kích kèo bóng đá c1 bị bỏ qua cho tất cả các loại kích kèo bóng đá c1 khác.

TIP

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

Đây là một ví dụ nhỏ chức năng kích kèo bóng đá c1 buộc 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àng. Đối với các hàng 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 $$

Lưu ý rằng chính chức năng kích kèo bóng đá c1 không biết tên cột; Đó là cung cấp từ các đối số kích kèo bóng đá c1.

Gửi hiệu chỉnh

Nếu bạn thấy bất cứ điều gì kèo bóng đá c1 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.