ORACLE 的触发器类型有哪些,ORACLE触发器类型

ORACLE 的触发器类型有哪些,ORACLE触发器类型1.DML触发器由对表的INSERT,DELETE,UPDATE激发CREATEORREPLACETRIGGERtrigger_nameAFTER–TIMING:BEFOREORAFTERDELETEORINSERTORUPDATEONtable_name–STATEMENT–REFERE…

大家好,又见面了,我是你们的朋友全栈君。

1.DML触发器

由对表的INSERT,DELETE,UPDATE激发

CREATE OR REPLACE TRIGGER trigger_name

AFTER                                    — TIMING :BEFORE OR AFTER

DELETE OR INSERT OR UPDATE ON table_name — STATEMENT

–REFERENCING :new a :old b              — new,语句后的表,old,语句前的表

FOR EACH ROW                             — LEVEL,行级

BEGIN

–PL/SQL

IF INSERTING THEN

insert into AUDIT_STUDENT

values

(sysdate, :new.id, :new.name, ‘INSERT’);

ELSIF DELETING THEN

insert into AUDIT_STUDENT

values

(sysdate, :old.id, :old.name, ‘DELETE’);

ELSE

insert into AUDIT_STUDENT

values

(sysdate, :old.id, :old.name, ‘UPDATE’);

END IF;

END;

/

/*DML触发器执行顺序

a.BEFORE语句级

b.BEFORE行级

c.AFTER行级

d.AFTER语句级

*/

语句级触发器:在语句执行前或执行后被触发

行级触发器:在每个触发语句影响的行触发一次,

2.INSTEAD OF触发器

代替直接对视图的INSERT,DELETE,UPDATE操作

CREATE OR REPLACE TRIGGER VW_STU_COURSE_INSERT

INSTEAD OF INSERT ON VW_STU_COURSE

FOR EACH ROW

DECLARE

rowcnt number;

BEGIN

INSERT INTO stu_info(id,name)

values(:new.id,:new.name);

insert into course_info(course_no,course_name)

values(:new.course_no,:new.course_name);

END;

/

3.系统触发器

a.DDL事件(CREATE,ALTER,DROP语句),需要有ADMISTRATER,DATABASE,TRIGGER特权

b.数据库事件

服务器启动,关闭

用户登录,注销

服务器错误等

CREATE OR REPLACE TRIGGER LogUser2Connects

AFTER LOGON ON DATABASE

BEGIN

INSERT INTO logon_record

values(sysdate,ora_login_user);

END;

/

–Enabling And Disabling Triggers

–Enabling Triggers

ALTER TRIGGER REORDER ENABLE;

ALTER TABLE INVENTORY ENABLE ALL TRIGGERS;

–Enabling Triggers

ALTER TRIGGER REORDER DISABLING;

ALTER TABLE INVENTORY DISABLING ALL TRIGGERS;

–View Of Triggers

USER_TRIGGERS

ALL_TRIGGERS

DBA_TRIGGERS

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/157536.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号