Oracle中向视图中插入数据

闲花芳草处

闲花芳草处

2016-01-29 14:39

Oracle中向视图中插入数据,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就不是主码了,所以为非码保留表.  

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com)

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

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

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

此外通过user_updatable_columns表能够查询到该表或者视图是否可更新。

Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1490248

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com)
展开更多 50%)
分享

猜你喜欢

Oracle中向视图中插入数据

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

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

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

s8lol主宰符文怎么配

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

oracle同时向多表插入数据

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

Oracle的数据库表与视图

编程语言 网络编程
Oracle的数据库表与视图

lol偷钱流符文搭配推荐

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

Oracle数据库视图管理经验技巧

编程语言 网络编程
Oracle数据库视图管理经验技巧

向MySQL数据表插入行记录(INSERT)

编程语言 网络编程
向MySQL数据表插入行记录(INSERT)

lolAD刺客新符文搭配推荐

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

理解物化视图刷新过程中出现的约束冲突

理解物化视图刷新过程中出现的约束冲突

《海岛奇兵》 如何选择神像走上海盗之路

《海岛奇兵》 如何选择神像走上海盗之路
下拉加载更多内容 ↓