INSTEAD OF触发器

创建一个Insert替代触发器,用于执行复杂视图更新(插入)操作

仅可用来执行多表关联的视图

若创建视图的语句中含有聚合函数等,则无法更新

create or replace view myview as

2  select e.empno,e.ename,e.job,e.sal,d.deptno,d.dname,d.loc

3  from emp e,dept d

4  where e.deptno=d.deptno and d.deptno=20

5  ;

create or replace trigger view_trigger

instead of insert on myview

for each row

declare

v_empCount number;

v_deptCount number;

begin

select count(empno) into v_empCount from emp where empno=:new.empno;

select count(deptno) into v_deptCount from dept where deptno=:new.deptno;

if v_deptCount=0 then

insert into dept(deptno,dname,loc) values(:new.deptno,:new.dname,:new.loc);

end if;

if v_empCount=0 then

insert into emp(empno,ename,job,sal,deptno)

values(:new.empno,:new.ename,:new.job,:new.sal,:new.deptno);

end if;

end;

/

insert into myview(empno,ename,job,sal,deptno,dname,loc) values(6688,'vdedu','clerk',2000,50,'teach','pekino');

创建一个UPDATE替代触发器

create or replace trigger view_trigger

2  instead of update on myview

3  for each row

4  begin

5      update emp set ename=:new.ename,job=:new.job,sal=:new.sal where empno=:new.empno;

6      update dept set dname=:new.dname,loc=:new.loc where deptno=:new.deptno;

7  end;

8  /

update myview set sal=900 where empno=7566;

1 row updated

mysql instead of触发_Instead of触发器相关推荐

  1. MySQL 5.0 新特性教程 触发器:第一讲

    滥觞:网海拾贝 作者:mysql AB;翻译:陈朋奕 Conventions and Styles约定和编程作风 每次我想要演示实践代码时,我会对mysql客户真个屏幕就出现的代码阻止调解排解,将字体 ...

  2. mysql触发器和oracle,MySQL与Oracle 差异比较之六触发器

    MySQL与Oracle 差异比较之六触发器 触发器 编号 类别 ORACLE MYSQL 注释 1 创建触发器语句不同 create or replace trigger TG_ES_FAC_UNI ...

  3. mysql高级知识(linux安装mysql+索引+视图+存储过程和函数+触发器)

    一.linux系统安装Mysql 1.mysql安装包: MySQL :: Download MySQL Community Server 2.mysql安装 linux安装在vmware(虚拟机)上 ...

  4. MySQL数据库(32):触发器 trigger

    触发器 trigger 一.基本概念 触发器是一种特殊类型的存储过程,触发器通过事件进行触发而被执行 触发器 trigger 和js事件类似 1.作用: 写入数据表前,强制检验或转换数据(保证数据安全 ...

  5. 请问一个表的update能同时触发两个触发器吗?

    请问一个表的update能同时触发两个触发器吗? 1.可以的﹐但一個表帶兩個觸器不好﹐對查詢速度﹐性能都有影響 2.每个表的触发器个数仅受数据库中的对象个数限制,数据库对象包括所有的表.视图.存储过程 ...

  6. Mysql 创建表、存储过程、触发器 -Angelo 分享

    Mysql 创建表.存储过程.触发器 -Angelo 分享 简单的小例子,创建两个表,一个存储过程,一个触发器 存储过程是个 while 循环,也很简单,循环网表里插数据 功能:表一只要有insert ...

  7. oracle触发器 触发事件,oracle 触发器的种类和触发事件

    oracle触发器的种类和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器 触发器的种类和触发事件 触发器必须由事件才能触发.触发器的触发事件分可为3类,分别是DML事件.DDL事件和 ...

  8. mysql采用 级触发_Mysql高级之触发器(trigger)

    触发器是一类特殊的事务 ,可以监视某种数据操作(insert/update/delete),并触发相关操作(insert/update/delete). 看以下事件: 完成下单与减少库存的逻辑 Ins ...

  9. MySQL 学习笔记(8)— 触发器

    1. 触发器概念 触发器是 MySQL 响应以下任意语句而自动执行的一条 MySQL 语句(或位于BEGIN 和 END 语句之间的一组语句) INSERT UPDATE DELETE 其他 MySQ ...

最新文章

  1. 【numpy】协方差计算
  2. 未来安防人工智能需要攻克的几大技术方向
  3. 深度解读Facebook刚开源的beringei时序数据库——数据压缩delta of delta+充分利用内存以提高性能...
  4. Effective_STL 学习笔记(四十三) 尽量用算法调用代替手写循环
  5. MyBatis的插入数据操作
  6. 7-47 打印选课学生名单 (25 分)(两种做法)(思路加详解+map+vector做法+最后一个点超时解决)+兄弟们冲丫丫
  7. 我好像明白了如何画序列图了
  8. 分类学计算机面试什么,史上最全的机器学习面试题-机器学习爱好者必看
  9. JavaScript中的this关键字
  10. python3全栈开发-并发编程,多进程的基本操作
  11. python keyboard库_python利用 keyboard 库记录键盘事件
  12. 面试题3二维数组中的查找
  13. 导出excel用ajax不行,提交form表单可以
  14. MySQL2:代码小节和代码测试
  15. 大数据技术原理与应用-林子雨版-课后习题答案
  16. 斗牛(牛牛)概率计算器
  17. h5py 必知--String存储
  18. HCIP 综合实验(一)
  19. 大数据多维分析常用操作图解 OLAP Operations
  20. 前端市场又“饱和”了,还有必要学吗?

热门文章

  1. 手摸手Go 深入剖析sync.Pool
  2. 数字蝶变,离不开云原生“苍穹”
  3. 200 个工具分析机器学习十年:前途未卜、工程师是核心!
  4. “数学不行,干啥也不行!”CTO:基础差的程序员,你不知道有多难!
  5. 一文带你认清数据仓库“维度模型设计”与“分层架构” | 原力计划
  6. 华为 5G、阿里检测病毒算法、腾讯 AI 一分钟诊断,国内抗疫科技大阅兵!
  7. 一位 Rust 开发者的 Go 初体验
  8. @程序员,如何花式构建线程?
  9. JavaScript 败北,TypeScript 大势所趋?
  10. 程序员有哪些丢不掉的编程“陋习”?