PLSQL编写触发器
来源:互联网 发布:大恒加密软件多少钱 编辑:程序博客网 时间:2024/06/05 16:27
主题:Oracle学习笔记(8) 使用PLSQL编写触发器
DML 触发器:
对表执行Insert、Update、Delete操作时激发
可以用于执行校验、设置初使值、审核改变、甚至禁止某种DML操作
语法:
CREATE OR REPLACE TRIGGER 触发器名称
{AFTER|BEFORE } -- 指定触发时机
{INSERT OR DELETE OR UPDATE} -- 指定触发器事件
ON 表名 --指定所监控的表
{FOR EACH ROW|FOR EACH STATEMENT} -- 指定触发器次数
BEGIN
--代码;
END;
相关概念:
AFTER|BEFORE:在什么事件之前或之后执行
INSERT|DELETE|UPDATE:什么事件
ON 表名:触发器建在什么表上,即监控什么表
FOR EACH ROW:行级触发,示例:delete from t1,删除1000行,则执行1000次(一行一次)
FOR EACH STATEMENT:语句级触发,示例: delete from t1,删除1000行,则执行1次(一句一次)
:new 行变量:保存事件发生时新数据所在行,只有insert事件和update事件才有新数据
:old 行变量:保存事件发生时旧数据所在行,只有delete事件和update事件才有旧数据
示例:指出事件,及事件中的新数据和旧数据
insert into emp(empno,ename) values(51,'job');
分析:只有一行新数据(51,job),对应:new变量。
update emp set ename='oracle' where empno = 51;
分析:旧数据 (51,job) ,对应:old变量。
新数据(51,oracle),对应:new变量。
delete from emp where empno = 51;
分析:只有一行旧数据(51,oracle),对应:old变量。
Sql代码
1.-- 显示触发器
2.select trigger_name,status from user_triggers;
3.-- 禁止触发器
4.alter trigger tr_emp_salary disable;
5.-- 激活触发器
6.alter trigger tr_emp_salary enable;
7.-- 禁止表的所有触发器
8.alter table employee disable all triggers;
9.-- 激活表的所有触发器
10.alter table employee enable all triggers;
11.-- 重新编译触发器
12.--alter table tr_emp_salary compile;
13.-- 删除触发器
14.drop trigger tr_emp_salary;
- PLSQL编写触发器
- PLSQL编写触发器
- PLSQL编写触发器
- Plsql 触发器
- plsql-触发器
- PLSQL触发器
- PLSQL触发器
- plsql developer调试触发器
- plsql developer调试触发器
- plsql developer调试触发器
- PLSQL之触发器
- [转载]PLSQL调试触发器
- plsql(二)--触发器
- 触发器编写
- 『PLSQL』PLSQL高级编程:触发器
- plsql回顾(3、触发器)
- plsql developer调试触发器
- plsql编编程,触发器 笔记
- nginx安装配置
- ContentType("application/octet-stream");
- debian7系统设置固定IP
- Hibernate Validation注解
- ecshop/ectouch最新版JSAPI微信支付V3安装帮助手册
- PLSQL编写触发器
- GitHub上 README 增加图片标签
- State模式详解--设计模式(15)
- leetcode 41. First Missing Positive
- Leetcode-balanced-binary-tree
- Oracle数据库的备份 数据导入与导出 Oracle
- 【分享】html5 开发工具——WeX5中的各种绑定方式
- 微信支付平台设置及如何获取微信支付所需参数
- mysql中select * for update