oracle instead of update触发器,oracle INSTEAD OF 触发器
INSTEAD OF 触发器只作用于视图上,不能作用于表上。
本来是不能在视图上INSERT、UPDATE、DELETE数据的,创建INSTEAD OF 触发器后,就可以了。
先创建两张表:
CREATE TABLE TB_A (ID INTEGER NOT NULL, COL VARCHAR2(20) NOT NULL);
CREATE TABLE TB_B (ID INTEGER NOT NULL, COL VARCHAR2(20) NOT NULL);
然后创建视图:
CREATE OR REPLACE VIEW VW_AB
AS SELECT A.ID, A.COL COLA, B.COL COLB
FROM TB_A A, TB_B B
WHERE A.ID = B.ID;
创建触发器:
CREATE OR REPLACE TRIGGER TRI_V_AB
INSTEAD OF INSERT ON VW_AB
FOR EACH ROW
BEGIN
INSERT INTO TB_A VALUES (:NEW.ID, :NEW.COLA);
INSERT INTO TB_B VALUES (:NEW.ID, :NEW.COLB);
END;
然后就可以INSERT数据到视图了:
INSERT INTO VW_AB VALUES (1, 'A1', 'B1');
COMMIT;
oracle instead of update触发器,oracle INSTEAD OF 触发器相关推荐
- oracle千万行update优化,Oracle的update优化
Oracle的update语句优化研究 一. update语句的语法与原理 1. 语法 单表:UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值如:update t_join ...
- oracle instead of update触发器,Oracle中的instead of触发器
Instead of : 用Trigger的内容替换 事件本身的动作,该触发器用在视图上,举例: 一:创建一个update替代触发器 (1)创建一个视图 1 create or replace vie ...
- oracle数据库登录失败触发器,oracle数据库登录、DDL触发器的应用
登录触发器 oracle登录记录触发器: 1.创建日志记录表: CREATE TABLE SYSTEM.LOGIN_LOG ( SESSION_ID NUMBER, LOGIN_ON_TIME DAT ...
- oracle行级的触发器,Oracle触发器Trigger2行级
create table trigger_t2( id int, name varchar(30), age int ); /* --创建一个before update的触发器-控制每一行,行级 -- ...
- Oracle入门(十四.19)之触发器简介
一.触发器的需求 让我们从一个例子开始吧:一条业务规则规定,只要员工的工资发生变化,变更就必须记录在日志记录表中. 可以创建两个过程来执行此操作: UPD_EMP_SAL更新工资,LOG_SAL_CH ...
- oracle用户的追踪文件,Oracle中怎样通过触发器来追踪用户的活动?
从Oracle8i开始,Oracle引入了特殊的触发器,这些触发器并不是和特殊的DML事件相关联的(DML事件,如,INSERT,UPDATE和DELETE).这些系统级别的触发器包括数据库启动触发器 ...
- 使用plsql创建oracle,在Oracle下使用PLSQL Developer创建简单的触发器
环境:PLSQL Developer 7.1.5 + Oracle 11.2.0 问题:在Oracle下使用PLSQL Developer创建简单 的触发器. 解决: 步骤一:在PLSQL Devel ...
- oracle建个触发器,oracle数据库如何创建触发器实例
Oracle DBA Studio 工具里面就能创建触发器 CREATE TRIGGER 名称 CREATE TRIGGER - 创建一个新触发器 语法 CREATE TRIGGER name { B ...
- oracle怎么使用触发器,Oracle触发器的使用
Oracle触发器的使用 触发器是指存放在数据库中,并被隐藏执行的存储过程.在Oracle8i之前,只允许基于表或视图的DML操作(insert,update,delete)建立触发器,在oracle ...
- oracle中 关于触发器,oracle 闪回关于触发器的bug
SQL> create table test1 (cola varchar2(10) ); 表已创建. SQL> create table test2 (colb varchar2(10) ...
最新文章
- jenkins+svn搭建
- java的方法什么时候加载,java – JVM什么时候加载类?
- 爱可可推荐!关于竞赛思路,方法和代码实践,数据竞赛Baseline开源分享!
- cnn对网络数据预处理_CNN中的数据预处理和网络构建
- Java泛型,枚举,注解
- html页面li节点排序,排序DOM节点的最简单方法?
- 如何设置postfix别名邮件组只接受本域的邮件
- Python BeautifulSoup库 API
- poj1390 (区间dp)
- Python Selenium系列学习
- Linux 中断详解
- solidworks入门实例画图_分享用SolidWorks绘制的鸡蛋托盘,学会借助于曲面生成波浪线草图...
- python中%s是什么意思_python的%s是什么意思
- 1154 Vertex Coloring
- 流程图(flowchart)语法
- SpringBoot+Vue实现简单用户管理平台第一篇(后端接口设计)
- hive2.3.2+mysql5.7.21驱动包_2018-08-30期 Hive外部元数据库配置
- 多设备monkey测试工具_基于Tkinter GUI操作
- 关于hxxp //www hj234 com的问题
- 概率函数P(x)、概率分布函数F(x)与概率密度函数f(x)的区别
热门文章
- 如何清除web 服务器的缓存
- mysql关于学校的专业院系_大学里分的院校和分专业系有什么不同
- fastdfs原理_搭建分布式文件系统FastDFS集群
- win10兼容android下载安装,Win10手机运行安卓App兼容工具下载!
- Python中fastapi构建的web项目配置环境变量
- Linux系统中源码包tomcat的管理
- linux awk搜索文本最后个字符串,[转载]linux下的文本处理命令sedawkgrep
- access中判断回文的代码_前端也来点算法(TypeScript版) | 2 - 回文数和回文链表
- jqgrid ajax reload,于jqgrid.trigger('reloadGrid')方法不能重新加载页面的问题
- linux6 rac 11g,oracle linux 6.操作系统oracle 11g rac