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
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.1. Tổng quan về hành vi kích kèo bóng đá việt nam

Trình kích kèo bóng đá việt nam là một đặc điểm kỹ thuật mà cơ sở dữ liệu nên tự động thực hiện một chức năng cụ thể bất cứ khi nào Loại kèo bóng đá việt nam động được thực hiện. Trình kích kèo bóng đá việt nam có thể được xác định là thực hiện trước hoặc sau bất kỳChèn, Cập nhậthoặcXóakèo bóng đá việt nam động, một lần mỗi Hàng sửa đổi hoặc một lần mỗiSQLcâu lệnh.Cập nhậtTriggers có thể hơn nữa Chỉ được đặt để bắn nếu các cột nhất định được đề cập trongsetmệnh đề củaCập nhậtTuyên bố. Triggers cũng có thể bắn chocắt ngắnCâu lệnh. Nếu một sự kiện kích kèo bóng đá việt nam xảy ra, chức năng của bộ kích kèo bóng đá việt nam được gọi vào thời điểm thích hợp để xử lý sự kiện.

Hàm kích kèo bóng đá việt nam phải được xác định trước khi tự kích kèo bóng đá việt nam có thể được tạo ra. Hàm kích kèo bóng đá việt nam phải được khai báo là một chức năng không lấy đối số và loại trả vềTrigger. (Hàm kích kèo bóng đá việt nam nhận được đầu vào của nó thông qua một đặc biệt được thông quaTriggerDataCấu trúc, không ở dạng Đối số chức năng thông thường.)

Một khi chức năng kích kèo bóng đá việt nam phù hợp đã được tạo, bộ kích kèo bóng đá việt nam được thành lập vớiTạo CÒ SÚNG. Chức năng kích kèo bóng đá việt nam tương tự có thể được sử dụng cho nhiều kích kèo bóng đá việt nam.

PostgreSQLcung cấp cảmỗi hàngTriggers vàmỗi câu chuyệnTriggers. Với một kích kèo bóng đá việt nam trên mỗi hàng, Hàm kích kèo bóng đá việt nam được gọi một lần cho mỗi hàng Bị ảnh hưởng bởi tuyên bố đã bắn kích kèo bóng đá việt nam. Ngược lại, a Trình kích kèo bóng đá việt nam trên mỗi tuyên bố chỉ được gọi một lần khi thích hợp Tuyên bố được thực thi, bất kể số lượng hàng bị ảnh hưởng bởi tuyên bố đó. Cụ thể, một tuyên bố ảnh hưởng đến số không hàng vẫn sẽ dẫn đến việc thực hiện bất kỳ áp dụng nào Trình kích kèo bóng đá việt nam mỗi câu chuyện. Hai loại kích kèo bóng đá việt nam này đôi khi gọi điệncấp độ hàngTriggers vàcấp độ tuyên bốKích kèo bóng đá việt nam, tương ứng. Kích kèo bóng đá việt nam TRÊNcắt ngắnchỉ có thể được xác định tại Cấp độ tuyên bố.

Triggers cũng được phân loại làtrướcTriggers vàsauTriggers. Cấp độ tuyên bố trước khi kích kèo bóng đá việt nam tự nhiên bắn trước khi tuyên bố bắt đầu làm bất cứ điều gì, trong khi Cấp độ tuyên bố sau khi kích kèo bóng đá việt nam lửa ở cuối tuyên bố. Cấp độ hàng trước khi kích kèo bóng đá việt nam bắn ngay trước khi Hàng cụ thể được kèo bóng đá việt nam động, trong khi cấp độ hàng sau các kích kèo bóng đá việt nam bắn vào cuối tuyên bố (nhưng trước bất kỳ cấp độ nào sau khi kích kèo bóng đá việt nam).

Các chức năng kích kèo bóng đá việt nam được gọi bởi các bộ kích kèo bóng đá việt nam trên mỗi thator Luôn trở lạinull. Chức năng kích kèo bóng đá việt nam được gọi bởi các kích kèo bóng đá việt nam trên mỗi hàng có thể trả về một hàng bảng (giá trị của kiểu) người thực thi, nếu họ chọn. Trình kích kèo bóng đá việt nam cấp hàng được bắn trước khi kèo bóng đá việt nam động có các lựa chọn sau:

  • nó có thể trả vềnullđể bỏ qua kèo bóng đá việt nam động cho hàng hiện tại. Điều này hướng dẫn người thực thi không thực hiện thao tác cấp độ hàng đã gọi trình kích kèo bóng đá việt nam (Việc chèn hoặc sửa đổi của một bảng cụ thể hàng ngang).

  • cho cấp độ hàngChènCập nhậtChỉ kích kèo bóng đá việt nam, đã trả về Hàng trở thành hàng sẽ được chèn hoặc sẽ thay thế Hàng đang được cập nhật. Điều này cho phép chức năng kích kèo bóng đá việt nam sửa đổi hàng được chèn hoặc cập nhật.

cấp độ hàng trước khi kích kèo bóng đá việt nam không có ý định gây ra một trong những hành vi này phải cẩn thận để trở lại như kết quả của nó cùng một hàng đã được truyền vào (nghĩa lànewhàng choChènCập nhậtTriggers, Thehàng choXóaTriggers).

Giá trị trả về bị bỏ qua đối với các kích kèo bóng đá việt nam cấp độ hàng một kèo bóng đá việt nam động và để họ có thể trả lạinull.

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

Một định nghĩa kích kèo bóng đá việt nam cũng có thể chỉ định BooleanKhiĐiều kiện sẽ được kiểm tra để xem Cho dù kích kèo bóng đá việt nam nên được bắn. Trong các kích kèo bóng đá việt nam cấp hàngkhiĐiều kiện có thể kiểm tra cái cũ và/hoặc các giá trị mới của các cột của hàng. (Cấp độ tuyên bố Trình kích kèo bóng đá việt nam cũng có thể cóKhiĐiều kiện, mặc dù tính năng này không hữu ích cho họ.) Trong một trước Trình kích kèo bóng đá việt nam,KhiĐiều kiện được đánh giá Ngay trước khi chức năng hoặc sẽ được thực thi, vì vậy sử dụngkhikhông khác biệt về mặt vật chất so với Kiểm tra cùng một điều kiện khi bắt đầu kích kèo bóng đá việt nam chức năng. Tuy nhiên, trong một kích kèo bóng đá việt nam sau,KhiĐiều kiện được đánh giá ngay sau hàng Cập nhật xảy ra và nó xác định liệu một sự kiện có được xếp hàng Đo bắn kích kèo bóng đá việt nam ở cuối tuyên bố. Vì vậy, khi một sau Trigger'sKhiĐiều kiện không quay lại Đúng, không cần thiết để xếp hàng một sự kiện cũng như không tìm nạp lại Hàng ở cuối tuyên bố. Điều này có thể dẫn đến tăng tốc đáng kể trong các câu lệnh sửa đổi nhiều hàng, nếu kích kèo bóng đá việt nam chỉ cần được bắn cho một vài trong số các hàng.

Thông thường, hàng trước khi kích kèo bóng đá việt nam được sử dụng để kiểm tra hoặc sửa đổi dữ liệu sẽ được chèn hoặc cập nhật. Ví dụ, A Before Trigger có thể được sử dụng để chèn thời gian hiện tại vào ADấu thời giancột hoặc để kiểm tra hai Các yếu tố của hàng là nhất quán. Hàng sau khi kích kèo bóng đá việt nam là hầu hết được sử dụng một cách hợp lý để tuyên truyền các bản cập nhật cho các bảng khác hoặc thực hiện Kiểm tra tính nhất quán so với các bảng khác. Lý do cho điều này Phân chia lao động là một kích kèo bóng đá việt nam sau có thể chắc chắn nó là Nhìn thấy giá trị cuối cùng của hàng, trong khi A Before Trigger không thể; Có thể có những người khác trước khi kích kèo bóng đá việt nam bắn sau nó. Nếu bạn có Không có lý do cụ thể nào để thực hiện kích kèo bóng đá việt nam trước hoặc sau trường hợp hiệu quả hơn, vì thông tin về kèo bóng đá việt nam động không cần phải lưu cho đến khi kết thúc tuyên bố.

Nếu hàm kích kèo bóng đá việt nam thực thi các lệnh SQL thì các lệnh này Các lệnh có thể kích kèo bóng đá việt nam bắn một lần nữa. Điều này được gọi là xếp tầng kích kèo bóng đá việt nam. Không có giới hạn trực tiếp về số lượng thác cấp độ. Cascades có thể gây ra một đệ quy Yêu cầu cùng một kích kèo bóng đá việt nam; Ví dụ: mộtChènTrigger có thể thực thi lệnh chèn một hàng bổ sung vào cùng một bảng, gây raChènTrigger sẽ được bắn lại. Nó là trách nhiệm của lập trình viên kích kèo bóng đá việt nam để tránh vô hạn đệ quy trong các kịch bản như vậy.

Khi một bộ kích kèo bóng đá việt nam được xác định, các đối số có thể được chỉ định cho nó. Mục đích bao gồm các đối số trong kích kèo bóng đá việt nam Định nghĩa là cho phép các kích kèo bóng đá việt nam khác nhau có các yêu cầu để gọi cùng một chức năng. Ví dụ, ở đó có thể là một chức năng kích kèo bóng đá việt nam tổng quát được sử dụng như Đối số hai tên cột 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. Viết đúng, cái này chức năng kích kèo bóng đá việt nam sẽ độc lập với bảng cụ thể kích kèo bóng đá việt nam trên. Vì vậy, cùng một chức năng có thể được sử dụng choChènSự kiện trên bất kỳ bảng nào có cột phù hợp, Để tự động theo dõi việc tạo hồ sơ trong bảng giao dịch Ví dụ. 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 định nghĩa làCập nhậtTrigger.

Mỗi ngôn ngữ lập trình hỗ trợ các kích kèo bóng đá việt nam có Phương pháp cung cấp dữ liệu đầu vào kích kèo bóng đá việt nam có sẵn cho trình kích kèo bóng đá việt nam chức năng. Dữ liệu đầu vào này bao gồm loại sự kiện kích kèo bóng đá việt nam (ví dụ.,ChènhoặcCập nhật) cũng như bất kỳ đối số nào được liệt kê TRONGTạo Trigger. Cho một cấp độ hàng Trình kích kèo bóng đá việt nam, dữ liệu đầu vào cũng bao gồmmớihàng choChènCập nhậtTriggers và/hoặchàng choCập nhậtXóaTriggers. Cấp độ tuyên bố Triggers hiện không có cách nào để kiểm tra cá nhân Hàng được sửa đổi bởi câu lệnh.