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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • drupal linux安装,在Debian 10(Buster) Linux服务器中安装drupal 8.8.0的说明

    drupal linux安装,在Debian 10(Buster) Linux服务器中安装drupal 8.8.0的说明按照本说明,你就可以成功的在Debian10(Buster)Linux服务器中安装好drupal8.8.0版本,已亲测能稳定运行。先决条件在开始安装之前,对安装的最低要求是:数据库服务器,如MySQL、MariaDB、PostgreSQL、Percona、SQLite等。Web服务器,如Nginx、Apache。PHP7.x,推荐>=7.2。至少1GB的磁盘空间。同时,要更新你的De…

    2022年7月20日
    15
  • 前端样式库_freelist数据结构

    前端样式库_freelist数据结构这个过程主要分为三个步骤:数据预处理数据处理就是把数据按照一定的格式写出来,以便网路自己去读取数据1准备原始数据我的cloth数据一共是四个类别,每个类别有衣服47张,一用是188张图片,这些

    2022年8月2日
    6
  • VScode快捷键(最全)[通俗易懂]

    VScode快捷键(最全)[通俗易懂]按Press功能FunctionCtrl+Shift+P,F1显示命令面板ShowCommandPaletteCtrl+P快速打开QuickOpenCtrl+Shift+N新窗口/实例Newwindow/instanceCtrl+Shift+W关闭窗口/实例Closewindow/instance基础编辑Basicediting按Press功…

    2022年6月12日
    103
  • Sublime Text3使用Package Control 报错There Are No Packages Available For Installation

    Sublime Text3使用Package Control 报错There Are No Packages Available For Installation在使用sublime时,有时候我们希望将代码复制出来后仍然是高亮显示,这样我们便需要安装SublimeHighLight插件,在安装SublimeHighLight插件之前,我们应该先安装PackageControl插件!1、PackageControl插件作用:能够利用这个插件安装很多Sublime的插件!2、SublimeHighLight插件作用:能让代码更好地展示其高亮性!我先从网上

    2022年7月11日
    22
  • vuejs环境搭建_vue搭建论坛

    vuejs环境搭建_vue搭建论坛前端框架vue开放环境搭建

    2022年9月1日
    5
  • Python一.Python安装及环境配置(完整教程)「建议收藏」

    Python一.Python安装及环境配置(完整教程)「建议收藏」Windowns操作系统中安装Python一.下载Python1.python官网:https://www.python.org/downloads/下载安装包2.选择版本我这里用安装版(64位)二.双击安装1.这里勾选安装并添加到PAHT,下一步。一直默认就可以安装完成2、查看环境变量是否有python的环境变量在命令窗口输入python-V回车如果出现python版本,那么恭喜…

    2022年5月31日
    36

发表回复

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

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