oracle中的触发器 insert or update or delete on table***

标签:
oracle触发器 |
分类: 菜鸟DBA之Oracle |
-----------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------
create table a0902_tri(
id numeric,
sname varchar(50) not null,
remark varchar(50) null,
ctime date,
mtime date
)
CREATE OR REPLACE TRIGGER a0902_p_trigger
BEFORE INSERT OR UPDATE OR DELETE ON a0902_tri
REFERENCING NEW AS NEW OLD AS OLD FOR EACH ROW
BEGIN
END;
INSERT INTO a0902_tri(ID,SNAME) VALUES (1,'AA');
INSERT INTO a0902_tri(ID,SNAME,REMARK,CTIME) VALUES (2,'AA','初始化',sysdate-1);
select * from a0902_tri;
http://s11/mw690/4c197d42tx6CkRlYYVc9a&690insert
--触发器insert 部分正确。
update a0902_tri
set id=999,remark='2013-09-02 modify'
where id=1
select * from a0902_tri;
http://s15/mw690/4c197d42tx6CkRmNTtQ4e&690insert
--触发器update部分正确。
delete from a0902_tri
where id=2
select * from a0902_tri;
http://s1/mw690/4c197d42tx6CkRpUkUM40&690insert
--触发器走null部分,执行delete。
修改触发器:
CREATE OR REPLACE TRIGGER a0902_p_trigger
BEFORE INSERT OR UPDATE OR DELETE ON a0902_tri
REFERENCING NEW AS NEW OLD AS OLD FOR EACH ROW
BEGIN
END;
SELECT * FROM a0902_tri;
http://s10/mw690/4c197d42tx6CkRrUIXv69&690insert
INSERT INTO a0902_tri(ID,SNAME) VALUES (3,'BB');
INSERT INTO a0902_tri(ID,SNAME,REMARK) VALUES (4,'CC','IIINSERT');
INSERT INTO a0902_tri(ID,SNAME,MTIME) VALUES (5,'DD',SYSDATE-10);
SELECT * FROM a0902_tri;
http://s7/mw690/4c197d42tx6CkRsNwXQ96&690insert
DELETE FROM a0902_tri
WHERE ID=5
SELECT * FROM a0902_tri;
http://s16/mw690/4c197d42tx6CkRuaoO36f&690insert
增表,修改触发器
create table a0902_tri_del(
id numeric,
sname varchar(50) not null,
remark varchar(50) null,
ctime date,
mtime date
)
CREATE OR REPLACE TRIGGER a0902_p_trigger
BEFORE INSERT OR UPDATE OR DELETE ON a0902_tri
REFERENCING NEW AS NEW OLD AS OLD FOR EACH ROW
BEGIN