oracle数据库触发器
来源:互联网 发布:菜鸟网络是什么 编辑:程序博客网 时间:2024/06/04 22:09
instead of触发器
instead of触发器介绍
instead of触发器代替触发动作,并在处理约束之前激发(对于每个触发操作,每个表或视图都只能有一个instead of触发器。而一个表对于每个触发操作可以有多个after触发器)
instead of触发器的创建模板:
create or replace trigger 触发器名
instead of 触发事件 on 表名|视图名
pl/sql 程序体
instead of触发器的主要优点:
可以使不能更新的视图支持更新。(疑问:通过以下的实验结果得出普通视图不是也可以更新么?)
以下是关于instead of触发器的一个代码示例:
/*准备工作//先创建一个主表stu2create table stu2(name varchar(10) primary key,phone number(10));//再创建一个从表stu3create table stu3(id number(10) primary key,name2 varchar(10) references stu2(name),xuehao number(10));//向stu2中插入一行数据insert into stu2values('佟丽娅',1);//向stu3中插入一行数据insert into stu3values(1.'佟丽娅',1);//创建一个视图 create view weiview as select stu2.name,stu2.phone,stu3.xuehao,stu3.id from stu2,stu3 where stu2.name=stu3.name2;*//*接下来是创建一个instead of触发器create or replace trigger myinsteadoftriggerinstead of update on weiviewbeginupdate stu2 set name=:new.name,phone=:new.phonewhere name=:old.name;update stu3 set name2=:new.name,xuehao=:new.xuehao,id=:new.idwhere id=:old.id;end;/*/
以上就是一个简单的instead of触发器
它的功能就是:当对视图weiview做更新操作时,相应的表也将随之更新。那么问题来了,如果不创建instead of触发器,那么数据库视图支持更新操作么(增删改)?如果支持更新,那么视图更新后,相应的表会更新么?(接下来就做一个简单的实验来解答:还是沿用上面的两个表:stu2和stu3,只不过在新建一个视图,且这次不再给视图加任何触发器,以下是实验代码)
/*问题:oracle数据库中视图支持update操作么(是否视图仅仅用来查看?)//创建一个视图weiview1 create view weiview1 as select stu2.name,stu3.id from stu2,stu3 where stu2.name=stu3.name2;//尝试对视图(两个表所连接起来的视图)进行update操作update weiview1 set id=2where name='迪丽热巴';//注:执行结果是表stu3的id被改变,变成了2(我并没有设置instead of 触发器)!!!!可见oracle数据库的视图支持更行操作,并且与视图相关联的(即试图从那些表中查找数据)表也将随之更新。
阅读全文
0 0
- ORACLE数据库触发器
- Oracle数据库触发器(Triggers)
- oracle数据库触发器例子
- Oracle 数据库事件触发器
- 数据库触发器(oracle)
- 数据库触发器----ORACLE
- 数据库 oracle 触发器
- oracle数据库触发器学习
- Oracle数据库中的触发器
- Oracle数据库update触发器
- Oracle数据库 -- 触发器
- Oracle数据库触发器
- oracle数据库触发器
- Oracle数据库触发器数据库审计
- Oracle触发器4-数据库事件触发器
- Oracle数据库触发器的组成
- oracle 数据库触发器的使用
- oracle 数据库 触发器 trigger 语法
- UNIX命令行快速入门1
- 行为型模式之观察者模式(Observer)
- Vue <一> 自定义组件 ,外部传入值
- Vue2.0 http请求以及loading展示
- Unity UGUI坐标转为3D世界坐标 世界左边转为UGUI坐标
- oracle数据库触发器
- NLP计算文档相似度之doc2vec
- error LNK2019: 无法解析的外部符号 / fatal error LNK1120: 2 个无法解析的外部命令
- mysql笔记一
- python 帮助文档下载地址
- focus-within
- Mongodb数据库必要的维护,如备份、恢复、导入、导出
- C++Primer笔记 十六 模板与泛型编程
- Java图片缩略图裁剪水印缩放旋转压缩转格式-Thumbnailator图像处理