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子句将允许您重新创建触发器。