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;

posted @ 2017-10-25 16:20  惠山脚下小学僧  阅读(80)  评论(0)    收藏  举报