在Oracle中向视图中插入数据的方法

善良的我是阳光

善良的我是阳光

2016-02-19 09:51

图老师小编精心整理的在Oracle中向视图中插入数据的方法希望大家喜欢,觉得好的亲们记得收藏起来哦!您的支持就是小编更新的动力~
插入视图的条件:  
1.如果视图是基于一个基础表产生的,那么这就称为非连接视图,所有的非连接视图都是可以更新的,也就是说可以在该视图上进行,INSERT,UPDATE,DELETE的操作.  
2.如果是连接视图,那就要遵守基本更新准则了.现在我只对INSERT准则做一下说明:在INSERT语句中不能显式或隐式的引用到任何非码保留基础表中的字段,如果在定义视图中使用了WITH CHECK OPTION子句,那就不能对视图执行INSERT操作.  
注:码保留表,非码保留表的解释:  
在DEPT中,DEPT_NO是主码,EMP中,EMP_NO是主码  
然后建立连接视图:  
create view emp_dept as  
select emp.emp_no,emp.emp_name,emp.dept_no,dept.name  
from emp,dept  
where emp.dept_no=dept.dept_no  

这个视图中,EMP_NO仍然充当主码,所以EMP为码保留表,而DEPT中的DEPT_NO就不是主码了,所以为非码保留表.  

多张表关联后需要向视图插入数据,建议使用替代触发器 

create trigger [触发器名]
on [视图名]
instead of insert
as
begin
--声明变量;
--从inserted表中查出所有列的数据,分别赋给声明好的变量;

--用上面的数据向第一张表插入数据
--用上面的数据向第二张表插入数据
end

此外通过user_updatable_columns表能够查询到该表或者视图是否可更新。
展开更多 50%)
分享

猜你喜欢

在Oracle中向视图中插入数据的方法

编程语言 网络编程
在Oracle中向视图中插入数据的方法

Oracle中向视图中插入数据

电脑网络
Oracle中向视图中插入数据

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

oracle同时向多表插入数据

电脑网络
oracle同时向多表插入数据

在设计视图中Access允许的九种数据类型

编程语言 网络编程
在设计视图中Access允许的九种数据类型

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

在Word中灵活插入数据

办公软件
在Word中灵活插入数据

在视图中同步显示鼠标的位置

编程语言 网络编程
在视图中同步显示鼠标的位置

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

你必须知道的C语言预处理的问题详解

你必须知道的C语言预处理的问题详解

struts2 spring整合fieldError问题

struts2 spring整合fieldError问题
下拉加载更多内容 ↓