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 / 7.3 / 7.2 / 7.1
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ùng tỷ lệ kèo bóng đá trang chohiện tạiPhiên bản hoặc tỷ lệ kèo bóng đá trong các phiên bản được hỗ trợ khác được liệt kê ở trên thay thế.

Chương 16. Trình kích tỷ lệ kèo bóng đá

PostgreSQLcó 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 SQL, C hoặc bất kỳ ngôn ngữ thủ tục được xác định. Cò súng các chức năng có thể được viết bằng C và hầu hết các ngôn ngữ thủ tục, nhưng Không phải trong SQL. Lưu ý rằng các sự kiện kích tỷ lệ kèo bóng đá cấp câu lệnh không được hỗ trợ trong phiên bản hiện tại. Bạn hiện có thể chỉ định Trước hoặc sau khi chèn, xóa hoặc cập nhật một tuple dưới dạng sự kiện kích tỷ lệ kèo bóng đá.

16.1. Định nghĩa kích tỷ lệ kèo bóng đá

11133_11221TriggerDataCấu trúc thông tin (được mô tả bên dưới) và gọi trình kích tỷ lệ kèo bóng đá chức năng để xử lý sự kiện.

Hàm kích tỷ lệ kèo bóng đá phải được xác định trước khi kích tỷ lệ kèo bóng đá Bản thân nó có thể được tạo ra. Hàm kích tỷ lệ kèo bóng đá phải được khai báo là một chức năng không có đối số và loại trả vềTrigger. (Hàm kích tỷ lệ kèo bóng đá nhận được Đầu vào thông qua ATriggerDataCấu trúc, không ở dạng đối số chức năng thông thường.) Nếu Hàm được viết bằng C, nó phải sử dụng"Phiên bản 1"Giao diện Trình quản lý chức năng.

11884_11922

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);

nơi đối số ở đâu:

Trigger

Trình kích tỷ lệ kèo bóng đá phải có tên khác với tất cả các loại khác kích tỷ lệ kèo bóng đá trên cùng một bảng. Tên là cần thiết nếu bạn bao giờ phải xóa trình kích tỷ lệ kèo bóng đá.

trước
sau

Xác định xem chức năng được gọi trước hay Sau sự kiện.

Chèn
Xóa
Cập nhật

Phần tử tiếp theo của lệnh xác định những gì (các) sự kiện sẽ kích tỷ lệ kèo bóng đá chức năng. Nhiều sự kiện có thể được chỉ định phân tách bởi hoặc.

quan hệ

Tên quan hệ cho biết bảng nào sự kiện áp dụng cho.

hàng
câu lệnh

Đối với mỗi mệnh đề xác định xem bộ kích tỷ lệ kèo bóng đá 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ộ tuyên bố đã hoàn thành. Hiện tại chỉ có hàng trường hợp được hỗ trợ.

Quy trình

Tên thủ tục là hàm được gọi.

args

Các đối số được truyền cho hàm trongTriggerDataCấu trúc. Đây là tỷ lệ kèo bóng đá trong hai trống hoặc tỷ lệ kèo bóng đá danh sách tỷ lệ kèo bóng đá hoặc nhiều hằng số theo nghĩa đen đơn giản (sẽ được chuyển đến hàm dưới dạng chuỗi).

Mục đích bao gồm các đối số trong trình kích tỷ lệ kèo bóng đá Định nghĩa là cho phép các kích tỷ lệ kèo bóng đá khác nhau có các yêu cầu để gọi cùng một chức năng. Ví dụ, ví dụ có thể có một chức năng kích tỷ lệ kèo bóng đá tổng quát cần như đối số của nó, hai tên trường và đặt hiện tại người dùng trong một và dấu thời gian hiện tại trong cái kia. Được viết đúng, chức năng kích tỷ lệ kèo bóng đá này sẽ là Không phụ thuộc vào bảng cụ thể mà nó đang kích tỷ lệ kèo bóng đá trên. Vì thế chức năng tương tự có thể được sử dụng cho các sự kiện chèn trên bất kỳ bảng với các trường phù hợp, để 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 để theo dõi các sự kiện cập nhật cuối cùng nếu được xác định là kích tỷ lệ kèo bóng đá cập nhật.

Các chức năng kích tỷ lệ kèo bóng đá trả về AĐể thực thi cuộc gọi. Sự trở lại Giá trị bị bỏ qua cho các kích tỷ lệ kèo bóng đá bị bắn sau một tỷ lệ kèo bóng đá động, nhưng nó Cho phép trước khi kích tỷ lệ kèo bóng đá:

  • Trả lại AnullCon trỏ để bỏ qua tỷ lệ kèo bóng đá động cho bộ tuple hiện tại (và vì vậy tuple sẽ không được chèn/cập nhật/xóa).

  • Chỉ để chèn và cập nhật kích tỷ lệ kèo bóng đá, bộ tuple trả về trở thành tuple sẽ được chèn hoặc sẽ thay thế Các tuple đang được cập nhật. Điều này cho phép chức năng kích tỷ lệ kèo bóng đá Để sửa đổi hàng được chèn hoặc cập nhật.

A trước khi kích tỷ lệ kèo bóng đá không có ý định gây ra một trong hai Những hành vi này phải cẩn thận để trả lại cùng một bộ phim mới được thông qua.

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ích tỷ lệ kèo bóng đá. Điều này có thể được thay đổi trong tương lai.

Nếu có nhiều hơn một kích tỷ lệ kèo bóng đá được xác định cho cùng một sự kiện trên mối quan hệ tương tự, các kích tỷ lệ kèo bóng đá sẽ được bắn theo thứ tự bảng chữ cái đặt hàng theo tên. Trong trường hợp kích tỷ lệ kèo bóng đá trước, Bộ tuple có thể sửa đổi được trả về bởi mỗi kích tỷ lệ kèo bóng đá trở thành nhập vào kích tỷ lệ kèo bóng đá tiếp theo. Nếu bất kỳ trước khi kích tỷ lệ kèo bóng đá trả vềnull, tỷ lệ kèo bóng đá động bị bỏ rơi và Các kích tỷ lệ kèo bóng đá tiếp theo không được bắn.

Nếu chức năng kích tỷ lệ kèo bóng đá thực thi SQL-Quaeries (sử dụng SPI) thì Các truy vấn này có thể kích tỷ lệ kèo bóng đá một lần nữa. Điều này được gọi là Cascading kích tỷ lệ kèo bóng đá. Không có giới hạn trực tiếp về số của cấp tầng. Cascades có thể gây ra Lệnh gọi đệ quy của cùng một kích tỷ lệ kèo bóng đá --- ví dụ, một Chèn trình kích tỷ lệ kèo bóng đá có thể thực thi một truy vấn chèn thêm Tuple vào cùng một bảng, khiến bộ kích tỷ lệ kèo bóng đá chèn được bắn một lần nữa. Trách nhiệm của lập trình viên kích tỷ lệ kèo bóng đá đối với Tránh đệ quy vô hạn trong các tình huống như vậy.