/*
分类:1、DDL触发器执行create,alter,drop操作时,会激活的触发器2、DML触发器执行增、删除、修改时,激活的触发器3、系统事件触发器执行特定的系统事件时(启动、加载、登录、退出)
构成:1、触发事件:会引起触发器执行的操作;DDL操作,DML操作,系统事件;2、触发时间:before ,after, instead of:替代3、触发条件:where 条件4、触发对象:表、视图、数据库对象5、触发频率:语句级别(表级别):执行一次,行级别:for each row :满足条件的每一行操作都会激活触发器;6、触发操作:触发器中执行的操作;*/
-- 1、语句级别的触发器。(执行一次)
--  before触发器  和   after触发器   刚执行语句 触发器跟着执行(1.判断语句是否执行 2.不给语句执行的机会) 和  语句可以先执行后设置的事件
-- 理解:当用户执行某个操作时,会执行我所写的触发器-- oracle中创建一个触发器   create or replace    关键字trigger + 触发器的名字。
create or replace trigger  insertInterceptorafter delete on emp                            -- 定义触发器的时间种类。   xx xx on xx 表名。
declarev_money emp.sal%type;row1 emp%rowtype;cursor c(no emp.deptno%type) is select * from emp where deptno=no;
begin                                           insert into emp (empno,ename,job,sal) values(20,'学习','张三',2000);open c(20);loopfetch c into row1;exit when c%notfound;dbms_output.put_line('cursor index=='||c%rowcount||'姓名=='||row1.ename||'--------工资=='||row1.sal||'--------工作=='||row1.job);end loop;close c;
end;-- 测试效果:删除20后新填入一个20在emp表中  并输出emp表中对应部门的 相关的  数据
delete from emp where empno=20;--练习   禁止用户在emp中的删除数据  tg01
alter trigger tg01 enable;
alter trigger tg01 disable;
delete from emp where empno=2;-- 禁止用户在emp中  update数据
create or replace trigger updateMessagebefore update on emp
declarebeginraise_application_error(-20010,'禁止用户在emp中  update数据');     --注意oracle错误码   20000--20999;
end;--测试
update emp set ename='哈哈' where empno=7788;
alter trigger updateMessage disable;-- 2、行级别触发器  for each row :满足条件的每一行操作都会激活触发器;
create or replace trigger rowMessagebefore update or insert on emp for each row
declarebegin         -- 如果条件执行  就给出相应的提示if updating then dbms_output.put_line('执行了更新的操作');if:old.sal>:new.sal then                            -- 逻辑表raise_application_error(-20002,'禁止给员工降工资!');end if;elsif inserting thendbms_output.put_line('执行了录入的操作');end if;
end;--关闭触发器
alter trigger updateMessage disable;
alter trigger insertInterceptor disable;update emp set sal=sal+1 where deptno=20;
commit; insert into emp (empno,ename,sal)values(5,'嘻嘻',500);select * from emp;
select sal from emp where deptno=20;-- 删除触发器
drop trigger tg02;

    

转载于:https://www.cnblogs.com/ZXF6/p/11240300.html

plsql 触发器介绍 语句级别触发器、行级别触发器。相关推荐

  1. oracle 触发器管理(以及行级触发器中有两个伪变量 :new 与 :old 的使用方法)(三个谓词inserting、deleting、updating的使用方法)

    oracle触发器管理: 1.概念 2.建立一个简单的触发器: 3.触发器的作用 4.触发条件 a.触发事件 b.触发时间 c.触发级别 d.触发限制 e.触发对象 5.创建及使用触发器 6.触发器分 ...

  2. [转]sql update 触发器 获得被update的行的信息详解

    create trigger TgName on tb for update as     if update(recommend) begin  update tb set commenddate= ...

  3. PowerBI实现行级别安全性(RLS)

    Microsoft Power BI 允许将报表和工作区共享到 Active Directory 用户和组,从而帮助保护报表和工作区. 你还可以共享单个报表,但根据用户的工作角色使用户看到不同的数据. ...

  4. MySQL触发器介绍

    前言: 在学习 MySQL 的过程中,可能你了解过触发器的概念,不清楚各位是否有详细的去学习过触发器,最近看了几篇关于触发器的文档,分享下 MySQL 触发器相关知识. 1.触发器简介 触发器即 tr ...

  5. SQL Server 2016 行级别权限控制

    背景 假如我们有关键数据存储在一个表里面,比如人员表中包含员工.部门和薪水信息.只允许用户访问各自部门的信息,但是不能访问其他部门.一般我们都是在程序端实现这个功能,而在sqlserver2016以后 ...

  6. MySQL 进阶 触发器 -- 触发器介绍、触发器语法、触发器案例

    文章目录 1. 触发器介绍 2. 触发器语法 2.1 创建触发器 2.2 查看触发器 2.3 删除触发器 3. 触发器案例 3.1 插入数据触发器 3.2 修改数据触发器 3.3 删除数据触发器 4. ...

  7. MSSQL-最佳实践-行级别安全解决方案

    title: MSSQL-最佳实践-行级别安全解决方案 author: 风移 摘要 在SQL Server安全系列专题月报分享中,我们已经分享了:如何使用对称密钥实现SQL Server列加密技术.使 ...

  8. POWERBI|行级别权限

    POWERBI是可以实现行级别权限以及页面级别权限的,本文主要介绍行级别权限. 一.数据模型 数据模型如下: 我们希望实现的场景是根据人员所归属的区域不一致,实现不同的人员所能看到的数据量是不一样的. ...

  9. MySql触发器介绍及应用

    1.触发器(trigger)的定义 触发器是与表事件相关的特殊存储过程,它的执行不由程序调用,也非手工启动,而是由事件触发.激活从而实现执行. 简单来说,触发器就是事先为某张表绑定一段代码,当表中的某 ...

最新文章

  1. NDK断点无法调试Unable to detect application ABI's
  2. struts2中使用json遇到的问题总结及示例程序
  3. LeetCode Rotate Image(矩阵的旋转)
  4. 为什么只需要一个eden而需要两个survivor?
  5. 兔子繁殖(easy)
  6. 数据库-第三范式及BCN
  7. python现在的时间是几点_Python 的日期和时间处理
  8. Postman最被低估的功能,自动化接口测试效率简直无敌!
  9. 6章:常用工具类以及函数
  10. 我的成长笔记20210402(测试文档编写)
  11. “御用”大数据为你揭秘:故宫,怎么这么“火”?
  12. 二、【服务器】服务器入门·服务器简介
  13. AppStore 上架方法(将包提交到构建文件)
  14. Excel表格导入CAD后,表格内数字后的小数点怎么消除呢?
  15. 【优秀课设】基于Python的百度API的OCR名片识别【含完整API账户】
  16. CVE PoC的精选列表(三)
  17. CVPR2020论文分方向整理之检测篇_3D目标检测(代码/论文解读/136篇打包下载)
  18. 两个女孩全程不带现金,只付加密货币几乎游遍大半个国家是一种什么体验?...
  19. 支持HEVC/H265 RTMP接收的FFMPEG/FFPLAY WINDOWS版本
  20. MySQL-18全文本搜索-必知必会

热门文章

  1. 2005年2月11日
  2. idea配置maven【伸手党福利】
  3. 如何看待30岁学编程,转行做程序员这件事,从零开始真的可以吗?
  4. 应用宝---应用找回
  5. SWAN测试执行流程
  6. CCF-CSP题解 201912-3化学方程式【字符串处理+模拟】
  7. html标题和段落标记,浅谈html标题,段落,换行,水平线,特殊字符
  8. IT技术人才抢人大战!
  9. 2021-2027全球及中国电外科手术钳行业研究及十四五规划分析报告
  10. 互联网的商业模式中有三个层次