oracle

推荐列表 站点导航

当前位置:首页 > 数据库 > oracle >

ORACLE PL/SQL 触发器编程篇介绍

来源:网络整理  作者:网络  发布时间:2020-12-13 17:37
ORACLE PL/SQL 触发器能够完成由数据库的完整性约束难以完成的复杂业务规则的约束;监视数据库的各种操作以及实现审...
IF inserting THEN --如果进行插入操作
FOR each row

info:='Update';
CREATE TRIGGER my_trigger --定义一个触发器my—trigger

INSERT INTO SQL_INFO VALUES(info); --记录这次操作信息
触发对象:包括表、视图、模式、数据库。


BEGIN
VALUES(teacher_id,'the teacher already exists!');
触发子类型:行触发和语句触发,触发中的new和old表。
WHEN(new.TNAME='David') --这一部分是触发条件
4.删除触发器

RAISE INSERT_EXIST_TEACHER;


DECLARE

复制代码 代码如下:

END my triqqer;

复制代码 代码如下:

teacher_id TEACHERS.TID%TYPE;
FROM TEACHERS
触发时机:触发器相对操作执行的时间,BEFORE/AFTER
info:='Delete';
CREATE OR REPLACE TRIGGER<触发器名>
END my_trigger1;
触发条件: WHEN子句


BEGIN

复制代码 代码如下:

BEFORE INSERT or UPDATE of TID,TNAME on TEACHERS
自动执行
SELECT TID INTO teacher_id
EXCEPTION --异常处理也可用在这里
FOR each row;
WHERE TNAME=new.TNAME;

DROP TRIGGER my_trigger;
触发条件
CREATE TRIGGER my_trigger1
INSERT_EXIST_TEACHER EXCEPTION;
WHEN INSERT_EXIST_TEACHER THEN


复制代码 代码如下:

info:='INSERT';
ELSE--如果进行删除操作
条件谓词:INSERTING(触发器事件为INSERT时为真),UPDATING,DELETING

3.执行触发器
ELSIF updating THEN --如果进行修改操作
触发器分为:DML触发器(对表或视图执行DML操作时触发),INSTEAD OF触发器(只定义在视图上,替代实际的操作语句),系统触发器(对数据库系统进行操作时触发,如DDL语句、启动或关闭数据库等)
两种功能:完成由数据库的完整性约束难以完成的复杂业务规则的约束;监视数据库的各种操作,实现审计功能。
触发事件: 上述触发器中括号内容都是触发事件。
触发操作:触发器自动执行的程序。
END IF;
INSERT INTO ERROR(TID,ERR)
触发体


DECLARE --下面这一部分是触发体
AFTER INSERT or UPDATE or DELETE on TEACHERS
info CHAR(10);
2.创建触发器
1.基本概念

相关热词: oracle

本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供用于网络技术学习参考,学习中请遵循相关法律法规!

本文地址: https://v30.fanwenzhu.com/sql/oracle/3362.shtml

Copyright © www.juheyunku.com      关于 | 合作 | 声明 | 联系 | 更新 | 地图 | Tags

ORACLE PL/SQL 触发器编程篇介绍

2020-12-13 编辑:网络

IF inserting THEN --如果进行插入操作
FOR each row

info:='Update';
CREATE TRIGGER my_trigger --定义一个触发器my—trigger

INSERT INTO SQL_INFO VALUES(info); --记录这次操作信息
触发对象:包括表、视图、模式、数据库。


BEGIN
VALUES(teacher_id,'the teacher already exists!');
触发子类型:行触发和语句触发,触发中的new和old表。
WHEN(new.TNAME='David') --这一部分是触发条件
4.删除触发器

RAISE INSERT_EXIST_TEACHER;


DECLARE

复制代码 代码如下:

END my triqqer;

复制代码 代码如下:

teacher_id TEACHERS.TID%TYPE;
FROM TEACHERS
触发时机:触发器相对操作执行的时间,BEFORE/AFTER
info:='Delete';
CREATE OR REPLACE TRIGGER<触发器名>
END my_trigger1;
触发条件: WHEN子句


BEGIN

复制代码 代码如下:

BEFORE INSERT or UPDATE of TID,TNAME on TEACHERS
自动执行
SELECT TID INTO teacher_id
EXCEPTION --异常处理也可用在这里
FOR each row;
WHERE TNAME=new.TNAME;

DROP TRIGGER my_trigger;
触发条件
CREATE TRIGGER my_trigger1
INSERT_EXIST_TEACHER EXCEPTION;
WHEN INSERT_EXIST_TEACHER THEN


复制代码 代码如下:

info:='INSERT';
ELSE--如果进行删除操作
条件谓词:INSERTING(触发器事件为INSERT时为真),UPDATING,DELETING

3.执行触发器
ELSIF updating THEN --如果进行修改操作
触发器分为:DML触发器(对表或视图执行DML操作时触发),INSTEAD OF触发器(只定义在视图上,替代实际的操作语句),系统触发器(对数据库系统进行操作时触发,如DDL语句、启动或关闭数据库等)
两种功能:完成由数据库的完整性约束难以完成的复杂业务规则的约束;监视数据库的各种操作,实现审计功能。
触发事件: 上述触发器中括号内容都是触发事件。
触发操作:触发器自动执行的程序。
END IF;
INSERT INTO ERROR(TID,ERR)
触发体


DECLARE --下面这一部分是触发体
AFTER INSERT or UPDATE or DELETE on TEACHERS
info CHAR(10);
2.创建触发器
1.基本概念

本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供学习参考!
本文地址为 https://v30.fanwenzhu.com/sql/oracle/3362.shtml

相关文章

风云图片

推荐阅读

返回oracle频道首页