?
本文檔使用 php中文網(wǎng)手冊 發(fā)布
CREATE CONSTRAINT TRIGGER name AFTER event [ OR ... ] ON table_name [ FROM referenced_table_name ] { NOT DEFERRABLE | [ DEFERRABLE ] { INITIALLY IMMEDIATE | INITIALLY DEFERRED } } FOR EACH ROW [ WHEN ( condition ) ] EXECUTE PROCEDURE function_name ( arguments )
CREATE CONSTRAINT TRIGGER創(chuàng)建constraint trigger。 這同樣是作為常規(guī)的觸發(fā)器,除了觸發(fā)發(fā)射的定時是可以通過使用 SET CONSTRAINTS調(diào)整的。約束觸發(fā)器必須是AFTER ROW觸發(fā)器。 這些觸發(fā)器要么在語句末觸發(fā)來引起觸發(fā)事件,要么在包含事務結(jié)束時觸發(fā);對于后者會被成為 遞延。一個掛起的遞延觸發(fā)器觸發(fā)可以通過SET CONSTRAINTS命令 強制迅速發(fā)生。
約束觸發(fā)器的名稱。這也是通過SET CONSTRAINTS調(diào)整觸發(fā)器的行為 時要使用的名稱。該名稱不能有模式修飾—觸發(fā)器繼承了表的模式。
觸發(fā)該觸發(fā)器的事件。是INSERT,UPDATE或 DELETE之一,可以使用OR指定多個值。
發(fā)生觸發(fā)器事件的表名稱(可能有模式修飾)
被約束引用的另一個表的名稱(可能有模式修飾)。此選項用于外鍵約束和通常不建議使用。
觸發(fā)器的缺省時序。參見CREATE TABLE文檔以獲取這些約束選項的細節(jié)。
決定觸發(fā)函數(shù)是否會真正被執(zhí)行的布爾表達式。這與CREATE TRIGGER 中表現(xiàn)得相同。特別注意:WHEN條件的評估不會推遲,但是會在行 更新操作完成后迅速發(fā)生。如果條件不估計true那么觸發(fā)器不會為 延遲執(zhí)行排隊。
函數(shù)在觸發(fā)器被觸發(fā)時被調(diào)用。參閱CREATE TRIGGER獲取更多 詳細的信息。
傳遞給觸發(fā)函數(shù)的可選參數(shù)字符串。參閱CREATE TRIGGER 獲取更多詳細信息。
CREATE CONSTRAINT TRIGGER是PostgreSQL 在SQL標準基礎(chǔ)上的擴展。