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

来源:asp之家 时间:2009-02-28 10:42:00 

插入视图的条件:
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表能够查询到该表或者视图是否可更新。

标签:Oracle,视图,插入,数据
0
投稿

猜你喜欢

  • 他们是如何不让我的Teleport和Webzip工作的?

    2010-07-14 21:06:00
  • 从IIS到SQL Server数据库安全

    2008-12-24 15:58:00
  • HTML头部属性全接触

    2007-09-05 19:09:00
  • 定位后无法选择容器的内容解决方案

    2008-07-30 12:08:00
  • HTML5本地存储初探(二)

    2010-03-07 15:47:00
  • 帮助你分析MySQL的数据类型以及建库策略

    2009-02-23 17:39:00
  • xmlHTTP技术资料

    2008-01-05 13:39:00
  • 不要放弃使用CSS中的新技术

    2009-05-15 12:49:00
  • php基础字符串与数组知识点讲解

    2023-05-25 08:28:14
  • 当设计师遇上前端开发

    2009-05-04 14:05:00
  • 基于google图表API的jquery组件 I

    2010-03-01 10:20:00
  • ASP页面内VBScript和JScript的交互

    2007-09-11 13:49:00
  • SQL Server索引管理的六大铁律

    2009-03-25 14:05:00
  • SQL Server可写脚本和编程扩展SSIS包

    2009-01-20 16:29:00
  • ASP的URLDecode函数URLEncode解码函数

    2011-02-16 11:17:00
  • asp文章上一篇,下一篇实现代码

    2008-03-24 20:15:00
  • MYSQL主从库不同步故障一例解决方法

    2010-06-09 19:12:00
  • IE下修改<p>标签的innerHTML出错

    2007-11-11 10:12:00
  • 泛泛而谈界面中的斑马纹设计

    2010-07-15 12:59:00
  • SQL Server 数据库故障修复顶级技巧之一

    2010-05-01 18:49:00
  • asp之家 网络编程 m.aspxhome.com