Tạo [ràng buộc] Triggertêntrước | Sau |Sự kiện[hoặc ...]Table_Name[từtham chiếu_table_name]điều kiện)]]function_name(Đối số)WHEREsự kiệncó thể là một trong số:ChènCột_name[, ...]]
kèo chấp bóng đá hôm nayTạo một trình kích kèo chấp bóng đá hôm nay mới. Trình kích kèo chấp bóng đá hôm nay 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 kèo chấp bóng đá hôm nay có thể được chỉ định để bắn trước khi kèo chấp bóng đá hôm nay độ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 kèo chấp bóng đá hôm nay độ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ì kèo chấp bóng đá hôm nay động (trong trường hợp chèn, cập nhật hoặc xóa khi xem).ChènvàCập nhậtChỉ kèo chấp bóng đá hôm nay động). Nếu kích kèo chấp bóng đá hôm nay 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 kèo chấp bóng đá hôm nay khác, là"hiển thị"đến kích kèo chấp bóng đá hôm nay.
Một bộ kích kèo chấp bóng đá hôm nay được đánh dấucho mỗi hàngđược gọi một lần cho mỗi hàng mà kèo chấp bóng đá hôm nay động sửa đổi. Ví dụ: AXóaảnh hưởng đến 10 hàng sẽ gây ra bất kỳKhi xóaKích kèo chấp bóng đá hôm nay 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 kèo chấp bóng đá hôm nay được đánh dấuĐối với mỗi câuChỉ thực hiện một lần cho bất kỳ kèo chấp bóng đá hôm nay động nào, bất kể nó sửa đổi bao nhiêu hàng (đặc biệt, một kèo chấp bóng đá hôm nay độ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). Lưu ý rằng với mộtChènvớitrên xung đột do cập nhậtmệnh đề, cả haiChènvàCập nhậtTrình kích kèo chấp bóng đá hôm nay cấp độ tuyên bố sẽ được bắn.
Trình kích kèo chấp bóng đá hôm nay được chỉ định để bắnthay vìSự kiện kích kèo chấp bóng đá hôm nay phải được đánh dấucho mỗi hàngvà chỉ có thể được xác định trên kèo chấp bóng đá hôm nay lượt xem.trướcvàsauTrình kích kèo chấp bóng đá hôm nay trên chế độ xem phải được đánh dấu làĐối với mỗi câu.
Ngoài ra, các kích kèo chấp bóng đá hôm nay 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 kèo chấp bóng đá hôm nay 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 | - | 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 kèo chấp bóng đá hôm nay có thể chỉ định booleanKhiĐiều kiện sẽ được kiểm tra để xem liệu có nên kích kèo chấp bóng đá hôm nay hay không. Trong các kích kèo chấp bóng đá hôm nay cấp hàngKhiĐiều kiện có thể kiểm tra các giá trị cũ và/hoặc mới của các cột của hàng. Trình kích kèo chấp bóng đá hôm nay cấp câu lệnh 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 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 raTrình kích kèo chấp bóng đá hôm nay ràng buộc. Điều này giống như một trình kích kèo chấp bóng đá hôm nay thông thường ngoại trừ thời gian bắn kích kèo chấp bóng đá hôm nay có thể được điều chỉnh bằng cách sử dụngPostgreSQL: Tài liệu: 9.5: Đặt các kèo bóng đá hôm nay và ngày. Kích kèo chấp bóng đá hôm nay 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 kèo chấp bóng đá hôm nay hoặc ở cuối giao dịch có chứa;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 sử dụngĐặt kèo chấp bóng đá hôm nay ràng buộc. Kích kèo chấp bóng đá hôm nay 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ọnTriggers. kèo chấp bóng đá hôm nay quy tắc và chế độ xem phù hợp hơn trong kèo chấp bóng đá hôm nay trường hợp như vậy.
Tham khảoChương 36Để biết thêm thông tin về trình kích kèo chấp bóng đá hôm nay.
Tên để đưa ra trình kích kèo chấp bóng đá hôm nay mới. Điều này phải khác biệt với tên của bất kỳ kích kèo chấp bóng đá hôm nay nào khác cho cùng một bảng.Đặt kèo chấp bóng đá hôm nay 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 kèo chấp bóng đá hôm nay ràng buộc chỉ có thể được chỉ định làsau.
một trong sốChèn, Cập nhật, Xóahoặccắt ngắn; Điều này chỉ định sự kiện sẽ kích kèo chấp bóng đá hôm nay kích kèo chấp bóng đá hôm nay.hoặc.
choCập nhậtSự kiện, có thể chỉ định danh sách kèo chấp bóng đá hôm nay cột bằng cú pháp này:
Cập nhậtCột_name1[,Cột_NAME2...]
Trình kích kèo chấp bóng đá hôm nay 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 kèo chấp bóng đá hôm nay cột.
19270_19367
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 kèo chấp bóng đá hôm nay ràng buộc của nước ngoài và không được khuyến nghị sử dụng chung.
Thời gian mặc định của kích kèo chấp bóng đá hôm nay. 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 kèo chấp bóng đá hôm nay ràng buộc.
Điều này chỉ định liệu quy trình kích kèo chấp bóng đá hôm nay 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 kèo chấp bóng đá hôm nay 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 kèo chấp bóng đá hôm nay 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 kèo chấp bóng đá hôm nay 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 kèo chấp bóng đá hôm nay cột của kèo chấp bóng đá hôm nay 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ảomới.
thay vìTriggers không hỗ trợKhiĐiều kiện.
Hiện tại,KhiBiểu thức không thể chứa kèo chấp bóng đá hôm nay nhóm phụ.
Lưu ý rằng đối với các kích kèo chấp bóng đá hôm nay 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 kèo chấp bóng đá hôm nay độ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 kèo chấp bóng đá hôm nay không được xếp hàng để thực thi hoãn lại.
Hàm 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 hiện khi kích kèo chấp bóng đá hôm nay.
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 kèo chấp bóng đá hôm nay được thực thi. Các đối số là hằng số chuỗi theo nghĩa đen.
Để tạo trình kích kèo chấp bóng đá hôm nay 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 kèo chấp bóng đá hôm nay.
Sử dụngtỷ lệ kèo bóng đá tối nay: Tài liệu:Để xóa trình kích kèo chấp bóng đá hôm nay.
Trình kích kèo chấp bóng đá hôm nay dành riêng cho cột (một được xác định bằng cách sử dụngCập nhậtCột_nameCú 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 kèo chấp bóng đá hôm nay 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ậtTriggers không được xem xét. Ngược lại, một lệnh nhưCập nhật ... Đặt x = x ...Sẽ kích kèo chấp bóng đá hôm nay kích kèo chấp bóng đá hôm nay trên cộtx, mặc dù giá trị của cột không thay đổi.
Có một vài chức năng kích kèo chấp bóng đá hôm nay tích hợp có thể được sử dụng để giải quyết các vấn đề phổ biến mà không phải viết mã kích kèo chấp bóng đá hôm nay của riêng bạn; nhìn thấyPhần 9.27.
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 kèo chấp bóng đá hôm nay. Lưu ý cụ thể rằngnewHà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 kèo chấp bóng đá hôm nay trước đó. Ngoài ra, AtrướcTrigger'sKhiĐiều kiện không được phép kiểm tra kèo chấp bóng đá hôm nay 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 kèo chấp bóng đá hôm nay trình kích kèo chấp bóng đá hôm nay ở cuối tuyên bố 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 kèo chấp bóng đá hôm nay chỉ cần được bắn vào một vài hàng.
Trình kích kèo chấp bóng đá hôm nay 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 đóQuy tắc, sau đó, bất kỳ câu lệnh nào được phát ra bởi quy tắc được thực thi thay cho câu lệnh gốc đặt tên cho chế độ xem, do đó các yếu tố kích kèo chấp bóng đá hôm nay sẽ được bắn là các bảng trên các bảng có tên trong các câu lệnh thay thế. Tương tự, nếu chế độ xem có thể tự động cập nhật, thì hành động được xử lý bằng cách tự động viết lại câu lệnh thành một hành động trên bảng cơ sở của chế độ xem, để các kích kèo chấp bóng đá hôm nay cấp độ câu lệnh của bảng cơ sở là những kích kèo chấp bóng đá hôm nay được kích kèo chấp bóng đá hôm nay.
inPostgreSQLPhiên bản trước 7.3, cần phải khai báo các chức năng kích kèo chấp bóng đá hôm nay là trả về loại trình giữ chỗOpaque, thay vìTrigger. Để hỗ trợ tải kèo chấp bóng đá hôm nay tệp kết xuất cũ,kèo chấp bóng đá hôm naySẽ kèo chấp bóng đá hôm nay nhận một chức năng được khai báo là trả lạiOpaque, nhưng nó sẽ đưa ra 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:
kèo chấp bóng đá hôm nay Check_Update
giống nhau, nhưng chỉ thực thi chức năng nếu cộtCân bằngđược chỉ định là mục tiêu trongCập nhậtlệnh:
kèo chấp bóng đá hôm nay Check_Update
Biểu mẫu này chỉ thực thi chức năng nếu cộtBalanceThực tế đã thay đổi giá trị:
kèo chấp bóng đá hôm nay Check_Update
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 kèo chấp bóng đá hôm nay log_update
thực thi chức năngView_insert_row
Để mỗi hàng chèn kèo chấp bóng đá hôm nay hàng vào kèo chấp bóng đá hôm nay bảng bên dưới chế độ xem:
kèo chấp bóng đá hôm nay View_insert
Phần 36.4chứa một ví dụ hoàn chỉnh về hàm kích kèo chấp bóng đá hôm nay được viết trong C.
Thekèo chấp bóng đá hôm naycâu lệnh trongPostgreSQLthực hiện một tập hợp con củaSQLTiêu chuẩn. kèo chấp bóng đá hôm nay 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 kèo chấp bóng đá hôm nay (ví dụ:28690_28780). TừPostgreSQLCho phép các quy trình kích kèo chấp bóng đá hôm nay đượ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 kèo chấp bóng đá hôm nay 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 hiện chức năng do người dùng xác định cho hành động được kích kèo chấp bóng đá hôm nay. 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 kèo chấp bóng đá hôm nay. Giới hạn này không khó để kèo chấp bóng đá hôm nay độ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 kèo chấp bóng đá hôm nay 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ằngTrước khi xóaTriggers trên Cascaded xóa lửasauCascadedXó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.trướcKích kèo chấp bóng đá hôm nay 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ác 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 kèo chấp bóng đá hôm nay bằng cách sử dụnghoặclà mộtPOSTGRESQLMở rộng tiêu chuẩn SQL.
Khả năng kích kèo chấp bóng đá hôm nay kích kèo chấp bóng đá hôm nay chocắt ngắnlà mộtPostgreSQLPhần mở rộng của tiêu chuẩn SQL, cũng như khả năng xác định các kích kèo chấp bóng đá hôm nay cấp câu lệnh trên chế độ xem.
Tạo Kích kèo chấp bóng đá hôm nay ràng buộclà mộtPostgreSQLPhần mở rộng củaSQLtiêu chuẩn.