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 một trang chohiện tạiPhiên bản hoặc một trong các phiên bản được hỗ trợ khác được liệt kê ở trên thay thế.

36.10. Quy trình kích tỷ lệ kèo bóng đá tối nay

PL/PGSQLcó thể được sử dụng để Xác định quy trình kích tỷ lệ kèo bóng đá tối nay. Một quy trình kích tỷ lệ kèo bóng đá tối nay được tạo bằng TheTạo chức nănglệnh, khai báo nó là một hàm không có đối số và loại trả về củaTrigger. Lưu ý rằng chức năng phải tuyên bố không có tranh luận ngay cả khi nó dự kiến ​​sẽ nhận được Đối số được chỉ định trongTạo Trigger- Đối số kích tỷ lệ kèo bóng đá tối nay được truyền quaTG_ARGV, như được mô tả bên dưới.

Khi APL/PGSQLHàm là được gọi là một trình kích tỷ lệ kèo bóng đá tối nay, một số biến đặc biệt được tạo tự động trong khối cấp cao nhất. Họ là:

new

Kiểu dữ liệuRecord; giữ biến Hàng cơ sở dữ liệu mới choChèn/Cập nhậttỷ lệ kèo bóng đá tối nay động trong các kích tỷ lệ kèo bóng đá tối nay cấp độ hàng. Biến này lànullTrong cấp độ tuyên bố kích tỷ lệ kèo bóng đá tối nay.

Loại dữ liệuRecord; giữ biến Hàng cơ sở dữ liệu cũ choCập nhật/Xóatỷ lệ kèo bóng đá tối nay động trong các kích tỷ lệ kèo bóng đá tối nay cấp độ hàng. Biến này lànullTrong cấp độ tuyên bố kích tỷ lệ kèo bóng đá tối nay.

TG_NAME

Kiểu dữ liệutên; biến mà chứa tên của bộ kích tỷ lệ kèo bóng đá tối nay thực sự bị bắn.

tg_when

Kiểu dữ liệuText; một chuỗi củatrướchoặcsauTùy thuộc vào bộ kích tỷ lệ kèo bóng đá tối nay sự định nghĩa.

TG_LEVEL

Kiểu dữ liệuText; một chuỗi củahànghoặccâu lệnhTùy thuộc vào bộ kích tỷ lệ kèo bóng đá tối nay sự định nghĩa.

TG_OP

Kiểu dữ liệuText; một chuỗiChèn, Cập nhậthoặcXóaKể cho tỷ lệ kèo bóng đá tối nay động nào được kích tỷ lệ kèo bóng đá tối nay.

TG_RELID

Kiểu dữ liệuOID; ID đối tượng của bảng gây ra lời mời kích tỷ lệ kèo bóng đá tối nay.

13796_13808

Kiểu dữ liệutên; tên của bảng gây ra lời mời kích tỷ lệ kèo bóng đá tối nay.

TG_NARGS

Kiểu dữ liệuSố nguyên; số lượng của Các đối số được đưa ra cho quy trình kích tỷ lệ kèo bóng đá tối nay trongTạo Triggercâu lệnh.

TG_ARGV []

Mảng kiểu dữ liệu củaText; các Đối số từTạo TriggerTuyên bố. Chỉ số được tính từ 0. Chỉ số không hợp lệ (ít hơn hơn 0 hoặc lớn hơn hoặc bằngTG_NARGS) dẫn đến giá trị null.

Một chức năng kích tỷ lệ kèo bóng đá tối nay phải trả vềnullhoặc giá trị bản ghi/hàng có chính xác Cấu trúc của bảng Trình kích tỷ lệ kèo bóng đá tối nay đã được bắn cho.

Trình kích tỷ lệ kèo bóng đá tối nay cấp hàng đã bắntrướcCó thể trả về null để báo hiệu Trình quản lý kích tỷ lệ kèo bóng đá tối nay để bỏ qua phần còn lại của tỷ lệ kèo bóng đá tối nay động cho hàng này (tức là, các kích tỷ lệ kèo bóng đá tối nay tiếp theo không được bắn, và15029_15037/Cập nhật/XóaKhông xảy ra cho hàng này). Nếu một giá trị nonnull được trả về thì tỷ lệ kèo bóng đá tối nay động tiến hành với giá trị hàng đó. Trả lại giá trị hàng khác với giá trị ban đầu củamớiThay đổi hàng sẽ được chèn hoặc cập nhật (nhưng không có Hiệu ứng trực tiếp trongXóatrường hợp). ĐẾN thay đổi hàng cần lưu trữ, có thể thay thế một Giá trị trực tiếp trongmớivà trả về Đã sửa đổimớihoặc để xây dựng một cái mới hoàn chỉnh Ghi lại/ROW để trả về.

Giá trị trả về của AtrướchoặcsauTrình kích tỷ lệ kèo bóng đá tối nay cấp độ tuyên bố hoặcsauTrigger cấp độ hàng luôn bỏ qua; Nó cũng có thể là null. Tuy nhiên, bất kỳ loại nào trong số này của Trình kích tỷ lệ kèo bóng đá tối nay vẫn có thể hủy bỏ toàn bộ tỷ lệ kèo bóng đá tối nay động bằng cách nâng cao lỗi.

Ví dụ 36-2Hiển thị một ví dụ về quy trình kích tỷ lệ kèo bóng đá tối nay trongPL/PGSQL.

Ví dụ 36-2. MỘTPL/PGSQLQuy trình kích tỷ lệ kèo bóng đá tối nay

Ví dụ này kích tỷ lệ kèo bóng đá tối nay đảm bảo rằng bất cứ khi nào một hàng được chèn hoặc được cập nhật trong bảng, tên người dùng và thời gian hiện tại là đóng dấu vào hàng. Và nó kiểm tra xem tên của một nhân viên là đã cho và mức lương là một giá trị dương.

16657_17590

Một cách khác để nhật ký thay đổi vào bảng liên quan đến việc tạo một cái mới bảng giữ một hàng cho mỗi lần chèn, cập nhật hoặc xóa nó xảy ra. Cách tiếp cận này có thể được coi là kiểm toán thay đổi bàn.Ví dụ 36-317895_17950PL/PGSQL.

Ví dụ 36-3. MỘTPL/PGSQLQuy trình kích tỷ lệ kèo bóng đá tối nay cho Kiểm toán

Ví dụ này kích tỷ lệ kèo bóng đá tối nay đảm bảo rằng mọi chèn, cập nhật hoặc Xóa một hàng trongEMPBảng là đã ghi (tức là, đã được kiểm toán) trongEMP_AUDITBảng. Thời gian hiện tại và tên người dùng được đóng dấu vào hàng, cùng với loại tỷ lệ kèo bóng đá tối nay động đã thực hiện trên nó.

18596_19803

Một cách sử dụng kích tỷ lệ kèo bóng đá tối nay là duy trì bảng tóm tắt của người khác bàn. Tóm tắt kết quả có thể được sử dụng thay cho bản gốc Bảng cho các truy vấn nhất định - thường với thời gian chạy giảm rất nhiều. Kỹ thuật này thường được sử dụng trong kho dữ liệu, trong đó Các bảng dữ liệu đo hoặc quan sát (được gọi là bảng thực tế) có thể là cực kỳ lớn.Ví dụ 36-4Hiển thị ví dụ về quy trình kích tỷ lệ kèo bóng đá tối nay trongPL/PGSQLduy trì bảng tóm tắt cho một bảng thực tế trong kho dữ liệu.

Ví dụ 36-4. MỘTPL/PGSQLQuy trình kích tỷ lệ kèo bóng đá tối nay để duy trì Một bảng tóm tắt

lược đồ chi tiết ở đây một phần dựa trênCửa hàng tạp hóaVí dụ từKho dữ liệu Bộ công cụbởi Ralph Kimball.

20937_25467