Tạo [ràng buộc] Triggertên10907_10944Sự kiện[hoặc ...]
TRÊNTable_Name[từtham chiếu_table_name]
[Không thể bảo vệ | [Có thể bảo vệ] Ban đầu ngay lập tức | Ban đầu bị trì hoãn]
[Cho [mỗi] hàng | TUYÊN BỐ ]
[ KHI (điều kiện)]]
Thực hiện thủ tụcfunction_name(Đối số)WHERESự kiệncó thể là một trong số:Chèn
Cập nhật [củaCột_name[, ...]]
XÓA BỎ
Cắt ngắn
cách đọc kèo bóng đáTạo một bộ kích cách đọc kèo bóng đá mới. Trình kích cách đọc kèo bóng đá sẽ được liên kết với bảng, chế độ xem hoặc bảng nước ngoài được chỉ định và sẽ thực thi chức năng được chỉ địnhfunction_nameKhi xảy ra sự kiện nhất định.
Trình kích cách đọc kèo bóng đá có thể được chỉ định để bắn trước khi cách đọc kèo bóng đá động được thử trên một hàng (trước khi các ràng buộc được kiểm tra vàChèn, Cập nhậthoặcXóađược cố gắng); hoặc sau khi cách đọc kèo bóng đá động hoàn thành (sau khi các ràng buộc được kiểm tra vàChèn, Cập nhậthoặcXóađã hoàn thành); hoặc thay vì cách đọc kèo bóng đá động (trong trường hợp chèn, cập nhật hoặc xóa khi xem). Nếu kích cách đọc kèo bóng đá bắn trước hoặc thay vì sự kiện, bộ kích cách đọc kèo bóng đá có thể bỏ qua thao tác cho hàng hiện tại hoặc thay đổi hàng được chèn (choChènvàCập nhậtChỉ cách đọc kèo bóng đá động). Nếu kích cách đọc kèo bóng đá bắn sau sự kiện, tất cả các thay đổi, bao gồm các tác động của các kích cách đọc kèo bóng đá khác, là"hiển thị"đến kích cách đọc kèo bóng đá.
12872_12899cho mỗi hàngđược gọi một lần cho mỗi hàng mà cách đọc kèo bóng đá động sửa đổi. Ví dụ: AXóaảnh hưởng đến 10 hàng sẽ gây ra bất kỳtrên xóaKích cách đọc kèo bóng đá về mối quan hệ mục tiêu được gọi là 10 lần riêng biệt, một lần cho mỗi hàng bị xóa. Ngược lại, một kích cách đọc kèo bóng đá được đánh dấuĐối với mỗi câuChỉ thực hiện một lần cho bất kỳ cách đọc kèo bóng đá động nào, bất kể nó sửa đổi bao nhiêu hàng (đặc biệt, một cách đọc kèo bóng đá động sửa đổi các hàng không vẫn sẽ dẫn đến việc thực hiện bất kỳ áp dụng nàoĐối với mỗi câuTriggers).
Trình kích cách đọc kèo bóng đá được chỉ định để bắnthay vìSự kiện kích cách đọc kèo bóng đá phải được đánh dấucho mỗi hàng, và chỉ có thể được xác định trên cách đọc kèo bóng đá lượt xem.trướcvàsau13780_13820Đối với mỗi câu.
Ngoài ra, các kích cách đọc kèo bóng đá có thể được xác định để bắn chocắt ngắn, mặc dù chỉĐối với mỗi câu.
Bảng sau đây tóm tắt loại kích cách đọc kèo bóng đá nào có thể được sử dụng trên bảng, chế độ xem và bảng nước ngoài:
khi | Sự kiện | cấp độ hàng | cấp độ tuyên bố |
---|---|---|---|
trước | Chèn/Cập nhật/Xóa | Bảng và bảng nước ngoài | Bảng, lượt xem và bảng nước ngoài |
cắt ngắn | - | Bảng | |
sau | Chèn/Cập nhật/Xóa | Bảng và bảng nước ngoài | Bảng, lượt xem và bảng nước ngoài |
cắt ngắn | 15221_15224 | Bảng | |
thay vì | Chèn/Cập nhật/Xóa | Chế độ xem | - |
cắt ngắn | - | - |
Ngoài ra, một định nghĩa kích cách đọc kèo bóng đá có thể chỉ định booleanKhiĐiều kiện sẽ được kiểm tra để xem liệu có nên kích cách đọc kèo bóng đá hay không. Trong các kích cách đọc kèo bóng đá cấp hàngkhi15883_15996KhiĐiều kiện, mặc dù tính năng này không hữu ích cho chúng vì điều kiện không thể đề cập đến bất kỳ giá trị nào trong bảng.
Nếu nhiều tác nhân cùng loại được xác định cho cùng một sự kiện, chúng sẽ được bắn theo thứ tự bảng chữ cái theo tên.
Khiràng buộcTùy chọn được chỉ định, lệnh này tạo raKích cách đọc kèo bóng đá ràng buộc. Điều này giống như một trình kích cách đọc kèo bóng đá thông thường ngoại trừ thời gian bắn kích cách đọc kèo bóng đá có thể được điều chỉnh bằng cách sử dụngPostgreSQL: Tài liệu: 9.4: Đặt các. Kích cách đọc kèo bóng đá ràng buộc phải làsau hàngTriggers trên bảng. Chúng có thể được sa thải vào cuối tuyên bố gây ra sự kiện kích cách đọc kèo bóng đá hoặc ở cuối giao dịch có chứa; Trong trường hợp sau, họ được cho làTrì hoãn. Một vụ bắn Truy nhập hoãn lại đang chờ xử lý cũng có thể bị buộc phải xảy ra ngay lập tức bằng cách đọc kèo bóng đá sử dụngĐặt cách đọc kèo bóng đá ràng buộc. Kích cách đọc kèo bóng đá ràng buộc dự kiến sẽ tăng một ngoại lệ khi các ràng buộc mà chúng thực hiện bị vi phạm.
ChọnKhông sửa đổi bất kỳ hàng nào để bạn không thể tạoChọnKích cách đọc kèo bóng đá. Các quy tắc và chế độ xem phù hợp hơn trong các trường hợp như vậy.
Tham khảoChương 36Để biết thêm thông tin về trình kích cách đọc kèo bóng đá.
17537_17833Đặt cách đọc kèo bóng đá ràng buộc.
Xác định xem hàm được gọi trước, sau hoặc thay vì sự kiện. Trình kích cách đọc kèo bóng đá ràng buộc chỉ có thể được chỉ định làsau.
một củaChèn, Cập nhật, Xóahoặccắt ngắn; Điều này chỉ định sự kiện sẽ kích cách đọc kèo bóng đá kích cách đọc kèo bóng đá. Nhiều sự kiện có thể được chỉ định bằng cách sử dụnghoặc.
choCập nhậtSự kiện, có thể chỉ định danh sách cách đọc kèo bóng đá cột bằng cú pháp này:
Cập nhậtCột_name1[,Cột_NAME2...]
Trình kích cách đọc kèo bóng đá sẽ chỉ bắn nếu ít nhất một trong các cột được liệt kê được đề cập làm mục tiêu củaCập nhậtlệnh.
Thay vì cập nhậtSự kiện không hỗ trợ danh sách cách đọc kèo bóng đá cột.
19057_19154
Tên (có thể là trình độ lược đồ) của một bảng khác được tham chiếu bởi ràng buộc. Tùy chọn này được sử dụng cho các ràng buộc của nước ngoài và không được khuyến nghị sử dụng chung. Điều này chỉ có thể được chỉ định cho các kích cách đọc kèo bóng đá ràng buộc.
Thời gian mặc định của kích cách đọc kèo bóng đá. XemTạo bảngTài liệu để biết chi tiết về các tùy chọn ràng buộc này. Điều này chỉ có thể được chỉ định cho các kích cách đọc kèo bóng đá ràng buộc.
Điều này chỉ định liệu quy trình kích cách đọc kèo bóng đá có nên được bắn một lần cho mỗi hàng bị ảnh hưởng bởi sự kiện kích cách đọc kèo bóng đá hay chỉ một lần cho mỗi câu lệnh SQL. Nếu không được chỉ định,Đối với mỗi câulà mặc định. Kích cách đọc kèo bóng đá ràng buộc chỉ có thể được chỉ địnhcho mỗi hàng.
Một biểu thức boolean xác định liệu chức năng kích cách đọc kèo bóng đá có thực sự được thực thi hay không. Nếu nhưKhiđược chỉ định, hàm sẽ chỉ được gọi nếuđiều kiệnreturnTRUE. TRONGcho mỗi hàngTriggers, TheKhiĐiều kiện có thể tham khảo cách đọc kèo bóng đá cột của cách đọc kèo bóng đá giá trị hàng cũ và/hoặc hàng mới bằng cách viếtcũ.Cột_namehoặcMới.Cột_nametương ứng. Tất nhiên rồi,ChènTriggers không thể tham khảocũvàXóaTriggers không thể tham khảonew.
thay vìTriggers không hỗ trợKhiĐiều kiện.
Hiện tại,Khi21287_21328
Lưu ý rằng đối với các kích cách đọc kèo bóng đá ràng buộc, đánh giáKhiĐiều kiện không bị hoãn lại, nhưng xảy ra ngay sau khi cách đọc kèo bóng đá động cập nhật hàng được thực hiện. Nếu điều kiện không đánh giá đúng thì kích cách đọc kèo bóng đá không được xếp hàng để thực thi hoãn lại.
Một chức năng do người dùng cung cấp được tuyên bố là không lấy đối số và loại trả vềTrigger, được thực thi khi kích cách đọc kèo bóng đá.
Một danh sách các đối số được phân tách bằng dấu phẩy tùy chọn sẽ được cung cấp cho chức năng khi trình kích cách đọc kèo bóng đá được thực thi. Các đối số là hằng số chuỗi theo nghĩa đen. Tên đơn giản và hằng số số cũng có thể được viết ở đây, nhưng tất cả chúng sẽ được chuyển đổi thành chuỗi. Vui lòng kiểm tra mô tả ngôn ngữ triển khai của hàm kích cách đọc kèo bóng đá để tìm hiểu làm thế nào các đối số này có thể được truy cập trong hàm; nó có thể khác với các đối số chức năng bình thường.
Để tạo trình kích cách đọc kèo bóng đá trên bảng, người dùng phải cóTriggerĐặc quyền trên bảng. Người dùng cũng phải cóthực thiĐặc quyền trên hàm kích cách đọc kèo bóng đá.
sử dụngkèo tỷ số bóng đá euro hôm nay:Để xóa trình kích cách đọc kèo bóng đá.
Trình kích cách đọc kèo bóng đá dành riêng cho cột (một được xác định bằng cách sử dụngCập nhật22909_22922Cú pháp) sẽ bắn khi bất kỳ cột nào của nó được liệt kê là mục tiêu trongCập nhậtLệnh củasetDanh sách. Giá trị của một cột có thể thay đổi ngay cả khi kích cách đọc kèo bóng đá không được bắn, bởi vì các thay đổi được thực hiện theo nội dung của hàng bởiTrước khi cập nhật23245_23307Cập nhật ... Đặt x = x ...Sẽ kích cách đọc kèo bóng đá trình kích cách đọc kèo bóng đá trên cộtx, mặc dù giá trị của cột không thay đổi.
trong AtrướcTrigger, TheKhiĐ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 việc kiểm tra cùng một điều kiện ở đầu hàm kích cách đọc kèo bóng đá. Lưu ý cụ thể rằngmớiHàng nhìn thấy theo điều kiện là giá trị hiện tại, như có thể được sửa đổi bởi các kích cách đọc kèo bóng đá trước đó. Ngoài ra, AtrướcTrigger'sKhiĐiều kiện không được phép kiểm tra cách đọc kèo bóng đá cột hệ thống củanewhàng (chẳng hạn nhưoid), bởi vì chúng chưa được đặt.
trong mộtsauTrigger, TheKhiĐiều kiện được đánh giá ngay sau khi cập nhật hàng xảy ra và nó xác định liệu một sự kiện có được xếp hàng để kích cách đọc kèo bóng đá kích cách đọc kèo bóng đá ở cuối câu lệnh hay không. Vì vậy, khi mộtsauTrigger'sKhiĐiều kiện không trả về true, không cần thiết phải xếp hàng một sự kiện cũng như không tìm nạp lại hàng ở cuối câu lệnh. Đ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 cách đọc kèo bóng đá chỉ cần được bắn vào một vài hàng.
Trình kích cách đọc kèo bóng đá cấp độ tuyên bố trên chế độ xem chỉ được bắn nếu hành động trên chế độ xem được xử lý bởi cấp độ hàngthay vìTrigger. Nếu hành động được xử lý bởi mộtThay vào đó24948_25406
inPostgreSQLPhiên bản trước 7.3, cần phải khai báo các chức năng kích cách đọc kèo bóng đá là trả về loại trình giữ chỗOpaque, chứ không phảiTrigger. Để hỗ trợ tải cách đọc kèo bóng đá tệp kết xuất cũ,cách đọc kèo bóng đásẽ chấp nhận một hàm được khai báo là trả vềOpaque, nhưng nó sẽ phát hành thông báo và thay đổi loại trả về được khai báo của hàm thànhTrigger.
thực thi chức năngCheck_account_update
Bất cứ khi nào một hàng của bảngTài khoảnsắp được cập nhật:
cách đọc kèo bóng đá Check_Update Trước khi cập nhật trên tài khoản Cho mỗi hàng Quy trình thực thi Check_account_update ();
giống nhau, nhưng chỉ thực thi chức năng nếu cộtBalanceđược chỉ định là mục tiêu trongCập nhậtlệnh:
cách đọc kèo bóng đá Check_Update Trước khi cập nhật số dư trên tài khoản Cho mỗi hàng Quy trình thực thi Check_account_update ();
Biểu mẫu này chỉ thực thi chức năng nếu cộtCân bằngThực tế đã thay đổi giá trị:
26810_26984
Gọi hàm để đăng nhập cập nhậtTài khoản, nhưng chỉ khi một cái gì đó thay đổi:
Tạo trình kích cách đọc kèo bóng đá log_update Sau khi cập nhật trên tài khoản Cho mỗi hàng Khi (cũ.* Khác biệt với mới.*) Thực thi quy trình log_account_update ();
thực thi chức năngView_insert_row
Để mỗi hàng chèn cách đọc kèo bóng đá hàng vào cách đọc kèo bóng đá bảng bên dưới chế độ xem:
cách đọc kèo bóng đá View_insert Thay vì chèn vào my_view Cho mỗi hàng Thực hiện quy trình xem_insert_row ();
Phần 36.4chứa một ví dụ hoàn chỉnh về hàm kích cách đọc kèo bóng đá được viết trong C.
Thecách đọc kèo bóng đácâu lệnh trongPostgreSQLthực hiện một tập hợp con củaSQLTiêu chuẩn. cách đọc kèo bóng đá chức năng sau hiện đang bị thiếu:
SQL cho phép bạn xác định bí danh cho"cũ"và"mới"Hàng hoặc bảng để sử dụng trong định nghĩa của hành động được kích cách đọc kèo bóng đá (ví dụ:28283_28373). TừPostgreSQLCho phép các quy trình kích cách đọc kèo bóng đá được viết bằng bất kỳ số lượng ngôn ngữ do người dùng định nghĩa nào, truy cập vào dữ liệu được xử lý theo cách cụ thể về ngôn ngữ.
PostgreSQLKhông cho phép các bảng cũ và mới được tham chiếu trong các kích cách đọc kèo bóng đá cấp độ tuyên bố, tức là, các bảng chứa tất cả các hàng cũ và/hoặc mới, được đề cập bởiBảng cũvàBảng mớimệnh đề trongSQLtiêu chuẩn.
PostgreSQLChỉ cho phép thực thi chức năng do người dùng xác định cho hành động được kích cách đọc kèo bóng đá. Tiêu chuẩn cho phép thực hiện một số lệnh SQL khác, chẳng hạn nhưTạo bảng, là hành động được kích cách đọc kèo bóng đá. Giới hạn này không khó để cách đọc kèo bóng đá động bằng cách tạo chức năng do người dùng xác định, thực thi các lệnh mong muốn.
SQL Chỉ định rằng nhiều kích cách đọc kèo bóng đá nên được bắn theo thứ tự thời gian sáng tạo.PostgreSQLsử dụng thứ tự tên, được đánh giá là thuận tiện hơn.
SQL Chỉ định rằng29583_29598Trình kích cách đọc kèo bóng đá trên Cascaded Deletes FiresauCascadedXóaHoàn thành. ThePostgreSQLHành vi dành choTrước khi xóaĐể luôn bắn trước hành động xóa, thậm chí là một tầng. Điều này được coi là nhất quán hơn. Ngoài ra còn có hành vi không chuẩn nếuTrướcTriggers sửa đổi hàng hoặc ngăn chặn cập nhật trong quá trình cập nhật do hành động tham chiếu. Điều này có thể dẫn đến cách đọc kèo bóng đá vi phạm ràng buộc hoặc dữ liệu được lưu trữ không tôn trọng ràng buộc tham chiếu.
Khả năng chỉ định nhiều hành động cho một lần kích cách đọc kèo bóng đá bằng cách sử dụnghoặclà mộtPostgreSQLMở rộng tiêu chuẩn SQL.
Khả năng kích cách đọc kèo bóng đá kích cách đọc kèo bóng đá chocắt ngắnlà APostgreSQLPhần mở rộng của tiêu chuẩn SQL, cũng như khả năng xác định các kích cách đọc kèo bóng đá cấp câu lệnh trên chế độ xem.
Tạo kích cách đọc kèo bóng đá ràng buộclà mộtPostgreSQLPhần mở rộng củaSQLtiêu chuẩn.