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)
上一篇 2022年7月11日 下午5:36
下一篇 2022年7月11日 下午5:36


相关推荐

  • #从源头解决# 自定义头文件在VS上出现“无法打开源文件“XX.h“的问题

    #从源头解决# 自定义头文件在VS上出现“无法打开源文件“XX.h“的问题自己编写了一个头文件,在主函数中通过#include引用时出现了无法打开源文件的问题,通过网上查阅,发现是自己混淆了#include<>和#include””的用法。问题完美解决!…

    2022年6月16日
    24
  • 网格布局java_Java 网格布局

    网格布局java_Java 网格布局网络布局 packagecom swing importjava awt GridLayout importjavax swing JButton importjavax swing JFrame classgridlay intsize 6 privateJButt newJButton size public

    2026年3月26日
    2
  • SEO培训对个人站长的价值

    SEO培训对个人站长的价值

    2021年8月23日
    81
  • 洗衣收银管理软件

    洗衣收银管理软件郑州东群科技是专业为洗衣连锁企业 洗衣店开发洗衣管理软件的 采用 SQLSERVER 数据库在 C NET 平台上开发 模块化结构设计 性能优越 安全稳定 操作便捷 是专业为洗衣连锁企业 洗衣店量身定做 我们将依据您的合理需求及行业发展方向和国际先进管理模式接轨 打造中国洗衣管理第一平台 软件功能 衣物管理 1 可根据洗衣店需求设置收衣流程 单件收衣流程只需 5 秒 详细记录衣物

    2026年3月17日
    1
  • crond简介

    crond简介一 crond 简介 crond 是 linux 下用来周期性的执行某种任务或等待处理某些事件的一个守护进程 与 windows 下的计划任务类似 当安装完成操作系统后 默认会安装此服务工具 并且会自动启动 crond 进程 crond 进程每分钟会定期检查是否有要执行的任务 如果有要执行的任务 则自动执行该任务 Linux 下的任务调度分为两类 系统任务调度和用户任务调度 系统任务调度 系统周期性所要执行的工作 比如

    2026年3月20日
    2
  • SpringCloud中Zuul网关原理及其配置,看它就够了!

    点击上方“全栈程序员社区”,星标公众号 重磅干货,第一时间送达 作者:kosamino cnblogs.com/jing99/p/11696192.html  &nbsp…

    2021年6月27日
    100

发表回复

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

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