PLSQL触发器
触发器的概述
DDL触发器
DML触发器
基本概念
事前触发器与事后触发器
语法:
Create [OR REPLACE] TRIGGER trigger_name
{Before|AFTER}
{INSERT|UPDATE|UPDATE OF COL1[,COL2...]|DELETE} ON TABLE_NAME
[WHEN(CONDITON)]
[DECLARE
declaration]
BEGIN
STATEMENT
END;
行级触发器与语句级触发器
语法:
Create [OR REPLACE] TRIGGER trigger_name
{Before|AFTER}
{INSERT|UPDATE|UPDATE OF COL1[,COL2...]|DELETE} ON TABLE_NAME
[FOR EACH ROW]--表示行级触发器,每执行一行,触发器便执行;
[WHEN(CONDITON)]
[DECLARE
declaration]
BEGIN
STATEMENT
END;
删除触发器 略
eg:
create or replace trigger tri1
before delete opon emp
for each row
begin
dbms_output.put_line('1');
end;
instead of 触发器
语法:
Create [or replace] TRIGGER trigger_name
Instead of dml_event ON{object_name|database|schma}
[WHEN(condition)]
[Declare
declaretion]
Begin
statement
End
eg:
Create or replace trigger insteadtri
Insteat of delete on v_view
begin
--操作
end;
系统触发器
语法:
Create [OR REPLACE] TRIGGER trigger_name
{Before|AFTER} db_event ON{database|schema}
[DECLARE
declaration]
BEGIN
STATEMENT
END;
eg:
创建系统触发器需要system账号权限
create or replace trigger systemtrig
after logon on database
begin
--操作;
end;

浙公网安备 33010602011771号