Oracle PL / SQL触发器Triggers

触发器是响应于表上的特定事件而执行的PL / SQL程序。

所讨论的事件可以发生FOR EACH ROW或SQL语句。

有行级或语句级触发器。

与触发器相关联的实际事件可以发生在BEFORE,AFTER或INSTEAD OF INSERT,UPDATE或DELETE SQL语句之后。

 

以下代码显示了针对作者表的触发器。


CREATE OR REPLACE TRIGGER authors_bir 
BEFORE INSERT ON authors 
FOR EACH ROW 
BEGIN 
    if upper(:new.name) = 'Mary' then 
        raise_application_error(20000, 'Sorry, that name is not allowed.'); 
    end if; 
END; 
/

 

注意

使用的语法如下:


CREATE [OR REPLACE] TRIGGER <trigger_name> 
BEFORE INSERT ON <table_name> 
FOR EACH ROW 
BEGIN
 <pl/sql> 
END; 

<trigger_name>是触发器的名称,<table_name>是表的名称,<pl / sql>是您在写入要执行的PL / SQL程序之前插入每个ROW。

[ ]OR REPLACE关键字的方括号表示它是可选的。

如果触发器已存在,则OR REPLACE子句将允许您重新创建触发器。