• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >Mysql > ORACLE PL/SQL 触发器编程篇介绍

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

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2018-12-05

匿名通过本文主要向大家介绍了ORACLE,PL/SQL,触发器等相关知识,希望本文的分享对您有所帮助

ORACLE PL/SQL 触发器能够完成由数据库的完整性约束难以完成的复杂业务规则的约束;监视数据库的各种操作以及实现审计功能

1.基本概念
两种功能:完成由数据库的完整性约束难以完成的复杂业务规则的约束;监视数据库的各种操作,实现审计功能。
触发器分为:DML触发器(对表或视图执行DML操作时触发),INSTEAD OF触发器(只定义在视图上,替代实际的操作语句),系统触发器(对数据库系统进行操作时触发,如DDL语句、启动或关闭数据库等)
触发事件: 上述触发器中括号内容都是触发事件。
触发条件: WHEN子句
触发对象:包括表、视图、模式、数据库。
触发操作:触发器自动执行的程序。
触发时机:触发器相对操作执行的时间,BEFORE/AFTER
条件谓词:INSERTING(触发器事件为INSERT时为真),UPDATING,DELETING
触发子类型:行触发和语句触发,触发中的new和old表。
2.创建触发器
代码如下:
CREATE OR REPLACE TRIGGER<触发器名>

触发条件
触发体
代码如下:
CREATE TRIGGER my_trigger --定义一个触发器my—trigger
BEFORE INSERT or UPDATE of TID,TNAME on TEACHERS
FOR each row
WHEN(new.TNAME='David') --这一部分是触发条件
DECLARE --下面这一部分是触发体
teacher_id TEACHERS.TID%TYPE;
INSERT_EXIST_TEACHER EXCEPTION;
BEGIN
SELECT TID INTO teacher_id
FROM TEACHERS
WHERE TNAME=new.TNAME;
RAISE INSERT_EXIST_TEACHER;
EXCEPTION --异常处理也可用在这里
WHEN INSERT_EXIST_TEACHER THEN
INSERT INTO ERROR(TID,ERR)
VALUES(teacher_id,'the teacher already exists!');
END my triqqer;

3.执行触发器
自动执行
代码如下:
CREATE TRIGGER my_trigger1
AFTER INSERT or UPDATE or DELETE on TEACHERS
FOR each row;
DECLARE
info CHAR(10);
BEGIN
IF inserting THEN --如果进行插入操作
info:='INSERT';
ELSIF updating THEN --如果进行修改操作
info:='Update';
ELSE--如果进行删除操作
info:='Delete';
END IF;
INSERT INTO SQL_INFO VALUES(info); --记录这次操作信息
END my_trigger1;

4.删除触发器
代码如下:
DROP TRIGGER my_trigger;
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 浅析drop user与delete from mysql.user的区别
  • mysql prompt的用法详解
  • 如何使用索引提高查询速度
  • 深入mysql创建自定义函数与存储过程的详解
  • JDBC数据库的使用操作总结
  • MySQL查询优化:LIMIT 1避免全表扫描提高查询效率
  • MySQL与Oracle的语法区别详细对比
  • 有关mysql中ROW_COUNT()的小例子
  • MySQL 百万级分页优化(Mysql千万级快速分页)
  • 从创建数据库到存储过程与用户自定义函数的小感

相关文章

  • 2018-12-05MySQL数据库设计优化的8种方法介绍
  • 2018-12-05mysql字符串字段如何按照逗号截取进行储存
  • 2018-12-05关于mysql_fetch_row()函数的10篇文章推荐
  • 2018-12-05MSSQL 数据库备份和还原的几种方法 图文教程
  • 2017-05-11给Mysql添加远程访问权限的方法
  • 2018-12-05【MySQL】MySQL的存储引擎
  • 2017-05-11Windows版Mysql5.6.11的安装与配置教程
  • 2017-05-11MySQL查询优化之explain的深入解析
  • 2018-12-05判断触发器正在处理的是插入,删除还是更新触发
  • 2018-12-05sql中用JOIN USING如何简化JOIN ON的实例

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • mssql @@ERROR 使用
    • 使用mysqldump命令实例详解
    • MySQL 中group by的实现
    • MySQL 数据类型 详解
    • SQL Server 7.0 入门(五)
    • sql 随机抽取几条数据的方法 推荐
    • MySQL中timestamp字段的一些规则
    • Oracle数据库的空间管理技巧
    • Mysql一些复杂的sql语句(查询与删除重复的行)
    • 如何理解MySQL中的数据类型概念?

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有