Postgrescó nhiều loại khác nhau Giao diện chức năng phía máy chủ. Các chức năng phía máy chủ có thể được viết bằng các chức năng SQL, PLPGSQL, TCL hoặc C. được viết bằng bất kỳ ngôn ngữ nào ngoại trừ SQL. Lưu ý rằng Các sự kiện kèo bóng đá c1 cấp tuyên bố không được hỗ trợ trong hiện tại phiên bản. Bạn hiện có thể chỉ định trước hoặc sau khi chèn, Xóa hoặc cập nhật bộ tuple dưới dạng sự kiện kèo bóng đá c1.
Nếu xảy ra sự kiện kèo bóng đá c1, trình quản lý kèo bóng đá c1 (được gọi bởi Người thực thi) thiết lập cấu trúc thông tin TriggerData (được mô tả bên dưới) và gọi hàm kèo bóng đá c1 để xử lý sự kiện.
11287_11512
11523_11572
Tạo TriggerTrigger[Trước | Sau] [chèn | Xóa | Cập nhật [hoặc ...]] TRÊNMối quan hệcho mỗi [hàng | TUYÊN BỐ ] Thực hiện thủ tụcQuy trình(args);trong đó kèo bóng đá c1 đối số ở đâu:
Tên của bộ kèo bóng đá c1 được sử dụng nếu bạn phải Xóa kèo bóng đá c1. Nó được sử dụng như một đối số choDrop Triggerlệnh.
Xác định xem chức kèo bóng đá c1 được gọi trước hay Sau sự kiện.
Phần tử tiếp theo của lệnh xác định về những gì (các) sự kiện sẽ kèo bóng đá c1 chức năng. Nhiều sự kiện có thể được chỉ định phân tách bởi hoặc.
Tên quan hệ xác định bảng nào sự kiện áp dụng cho.
Đối với mỗi mệnh đề xác định xem bộ kèo bóng đá c1 có phải là bắn cho mỗi hàng bị ảnh hưởng hoặc trước (hoặc sau) toàn bộ câu lệnh đã hoàn thành.
Tên thủ tục là hàm được gọi.
Các đối số được truyền cho hàm trong Cấu trúc kèo bóng đá c1. Mục đích của việc thông qua các đối số cho chức năng là cho phép các kèo bóng đá c1 khác nhau với các yêu cầu tương tự để gọi cùng một chức năng.
Ngoài ra,Quy trìnhcó thể được sử dụng để kèo bóng đá c1 các mối quan hệ khác nhau (các chức năng này được đặt tên là "chức năng kèo bóng đá c1 chung").
Ví dụ về việc sử dụng cả hai tính năng ở trên, có thể là một chức năng chung lấy làm đối số của nó hai tên trường và đặt người dùng hiện tại vào một và Dấu thời gian hiện tại trong cái khác. Điều này cho phép các yếu tố kèo bóng đá c1 được viết trên các sự kiện chèn để tự động theo dõi Tạo hồ sơ trong một bảng giao dịch chẳng hạn. Nó cũng có thể được sử dụng như một chức năng "cập nhật lần cuối" nếu được sử dụng trong một sự kiện cập nhật.
Các chức năng kèo bóng đá c1 trả về trọng lượng cho người thực thi gọi. Điều này bị bỏ qua cho các kèo bóng đá c1 được bắn sau khi chèn, xóa hoặc Cập nhật hoạt động nhưng nó cho phép trước khi kèo bóng đá c1:
Trả về NULL để bỏ qua thao tác cho bộ tu (và vì vậy tuple sẽ không được chèn/cập nhật/xóa).
Trả lại một con trỏ cho một tuple khác (chèn và cập nhật chỉ) sẽ được chèn (là phiên bản mới của Cập nhật bộ tple nếu cập nhật) thay vì tuple gốc.
Lưu ý rằng không có khởi tạo nào được thực hiện bởi Tạo Trình xử lý kèo bóng đá c1. Điều này sẽ được thay đổi trong tương lai. Ngoài ra, nếu nhiều hơn một kèo bóng đá c1 được xác định cho cùng một sự kiện Mối quan hệ, thứ tự bắn kèo bóng đá c1 là không thể đoán trước. Cái này có thể được thay đổi trong tương lai.
Nếu chức năng kèo bóng đá c1 thực thi SQL-Quaeries (sử dụng SPI) thì Các truy vấn này có thể kèo bóng đá c1 một lần nữa. Điều này được gọi là Cascading kèo bóng đá c1. Không có giới hạn rõ ràng về Số lượng cấp tầng.
Nếu một kèo bóng đá c1 được bắn bằng cách chèn và chèn một tuple mới vào Mối quan hệ tương tự sau đó kèo bóng đá c1 này sẽ được bắn lại. Hiện tại, không có gì được cung cấp để đồng bộ hóa (v.v.) trong số những trường hợp này nhưng điều này có thể thay đổi. Hiện tại, có chức năng funny_dup17 () trong các thử nghiệm hồi quy sử dụng một số kỹ thuật dừng đệ quy (xếp tầng) trên chính nó ...