oracle视图表怎么修改(oracle视图添加字段)

一个朋友在回复的时候给出了一篇inthirties写的关于更新视图的帖子,简洁明了,转过来学习学习。===============================================================================Oracle里视图可以update吗?如果在网上做出这样一个问题调查,我想很多的网友朋友,都会不假思索的回答到,不行,视图是逻辑记录,并不…

大家好,又见面了,我是你们的朋友全栈君。

一个朋友在回复的时候给出了一篇 inthirties 写的关于更新视图的帖子,简洁明了,转过来学习学习。

===============================================================================

Oracle里视图可以update吗?

如果在网上做出这样一个问题调查,我想很多的网友朋友,都会不假思索的回答到,不行,视图是逻辑记录,并不是物理记录,而且很多的朋友

在影响深处都有这样一个浅意识影响或者是经验。

但是在这里,我要告诉大家的是,视图是可以update,不过,这是视图不是一个普通视图。

以下这样的视图是可以update

update的情况,必须是一下情况

1. view的字段只涉及一个表。

2. 如果涉及多个表的话,被(涉及到的)view列所映射table列(或列的组合)必须是有主健约束的

3. 强制执行,方法是加上hint /*+ BYPASS_UJVC */

我们做一下实验,OS window xp profession, Oracle 10.2.0.1

SQL> CREATE TABLE test1 ( id integer primary key, num integer );

SQL> INSERT INTO test1 VALUES (1,0);

SQL> INSERT INTO test1 VALUES (2,0);

SQL> CREATE TABLE test2 ( id integer, num integer, upd integer );

SQL> INSERT INTO test2 VALUES (1,10, 0);

SQL> INSERT INTO test2 VALUES (2,20, 1);

SQL> UPDATE ( SELECT t1.id id1, t1.num num1, t2.id id2, t2.num num2 from test1 t1, test2 t2 WHERE t1.id=t2.id AND t2.upd=1) SET num1=num2;

ORA-01779: cannot modify a column which maps to a non key-preserved table

SQL> CREATE UNIQUE INDEX test2_idx_001 ON test2 (id);

SQL> UPDATE ( SELECT t1.id id1, t1.num num1, t2.id id2, t2.num num2 from test1 t1, test2 t2 WHERE t1.id=t2.id AND t2.upd=1) SET num1=num2;

1 row updated.

SQL> UPDATE ( SELECT /*+ BYPASS_UJVC */ t1.id id1, t1.num num1, t2.id id2, t2.num num2 from test1 t1, test2 t2 WHERE t1.id=t2.id AND t2.upd=1) SET num1=num2;

大家看到了,通过这里的实验,我们看到了,并不是所有的视图都不能update的,有时我们的潜意识和经验对于我们的学习很有帮助,不过

有时这样的浅意思和经验对我们的学习也有一些不好的影响,多思考,多怀疑,多验证,是一个学习中的好习惯,很多的固化下来的思想,并不一定是正确的,扎实的学习,不放过学习中的疑问,学会做一个正确的离经叛道者。

/*

当然,直接对视图的更新�

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/128564.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • fedora14下载_无法获取url

    fedora14下载_无法获取url备忘:http://mirrors.163.com/fedora/releases/12/Fedora/i386/iso/

    2022年9月20日
    4
  • VLDB论文解读:阿里云超大规模实时分析型数据库AnalyticDB「建议收藏」

    VLDB论文解读:阿里云超大规模实时分析型数据库AnalyticDB「建议收藏」1、背景随着数据量的快速增长,越来越多的企业迎来业务数据化时代,数据成为了最重要的生产资料和业务升级依据。伴随着业务对海量数据实时分析的需求越来越多,数据分析技术这两年也迎来了一些新的挑战和变革:在线化和高可用、离线和在线的边界越来越模糊,一切数据皆服务化、一切分析皆在线化; 高并发低延时,越来越多的数据系统直接服务终端客户,对系统的并发和处理延时提出了新的交互性挑战; 混合负载,一套实时分析系统既要支持数据加工处理,又要支持高并发低延时的交互式查询; 融合分析,随着对数据新的使用方式探索,需

    2022年9月17日
    2
  • java手机编译器_Java编译器手机版[通俗易懂]

    Java编译器手机版是一款十分好用的手机办公软件,用户可以使用此软件适用在线从文件浏览器中开启编码文档,便捷客户访问查询。全自动储存作用能够让客户在各种各样情景撰写编码,便捷客户应用。感兴趣的用户赶紧来下载Java编译器手机安卓版吧。Java编译器手机版特色1、Java编译器手机版将编译程序您的编码以最短的时间完成;2、app也可以编译程序C,C++编码及其Java程序流程;3、Java视频动画,…

    2022年4月9日
    47
  • Md编辑器_wife可以看电视但不能打游戏

    Md编辑器_wife可以看电视但不能打游戏文章目录为什么写这个?0.介绍一下md?1纯md语法的使用1.1快捷键1.2字符效果和横线等1.2.1横线1.2.2删除线1.2.3斜体字1.2.4粗体1.2.5粗斜体1.2.6上标与下标1.2.7**缩写(同HTML的abbr标签)**1.2.8引用Blockquotes1.3各级标签标签1标签2标签3标签4标签5标签61.4.列表1.4.1无序列表(…

    2022年9月23日
    2
  • python nonlocal的用法_python nonlocal 的具体原理[通俗易懂]

    python nonlocal的用法_python nonlocal 的具体原理[通俗易懂]很多文章都大概列了下nonlocal的具体用法,比如看到几篇文章写的“nonlocal关键字用来在函数或其他作用域中使用外层(非全局)变量”看完以后我感觉自己是懂了,但光从这句话来说还没完全理解它的真实含义nonlocaldefmake_average():series=[]defaverage(new_value):series.append(new_value)total=sum(s…

    2025年9月16日
    5
  • 请输入你的姓名C语言,VB程序题:要求:在屏幕上显示欢迎学习“VisualBasic”,并在“请输入你的姓名”标签后的文本框Text1中输入姓名;单击“你输入的姓名是”按钮,….. VB程序设计教…

    请输入你的姓名C语言,VB程序题:要求:在屏幕上显示欢迎学习“VisualBasic”,并在“请输入你的姓名”标签后的文本框Text1中输入姓名;单击“你输入的姓名是”按钮,….. VB程序设计教…VB程序题:要求:在屏幕上显示欢迎学习“VisualBasic”,并在“请输入你的姓名”标签后的文本框Text1中输入姓名;单击“你输入的姓名是”按钮,在Label3标签显示在文本框Text1输入的姓名。程序运行效果如下图所示。提示:1.所用的控件及属性设置见下表控件名属性Label1Caption=”欢迎学习VisualBasi”;Font属…

    2022年9月26日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号