我在oracle数据库中的一个视图中添加了一行,提示添加成功,但在视图中查不到,是啥原因?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我在oracle数据库中的一个视图中添加了一行,提示添加成功,但在视图中查不到,是啥原因?相关的知识,希望对你有一定的参考价值。
视图用于读的操作比较多,不建议你在视图中插数据。要插数据请在相应的表里,如果你在视图插找不到记录的话请查看视图的创建语句 参考技术A 有没有COMMITOracle - 物化视图中的视图
【中文标题】Oracle - 物化视图中的视图【英文标题】:Oracle - View in Materialized View 【发布时间】:2014-04-21 02:08:31 【问题描述】:我正在尝试了解如何在物化视图中更改查询。 但是我有一个问题,如果我在物化视图脚本中使用视图,那么当我更改视图脚本时,物化视图会有什么影响? 我是否需要删除 MV 并重新创建它?
如果视图更改,刷新时对现有数据的性能有何影响?
【问题讨论】:
没有。您可以在不重新创建 MV 的情况下更改引用视图,除非您更改任何列。 MV 根据您的查询创建一个表。所以只要只改变逻辑而不改变列,就可以修改引用的视图。 我正在计划更改逻辑,那么已经存储的现有数据将自行修改(刷新数据适应新逻辑)还是仅在新数据中实现?因为如果刷新旧数据,我害怕的是它需要很长时间。 【参考方案1】:首先我想知道,为什么要在物化视图中创建视图.. 正如我所知,视图和物化视图都是对象的虚拟表,主要区别在于,如果您的对象被删除,您的普通视图将变得无效,但如果是您的物化视图,您可以按原样检索数据存储或占用您的物理内存,在创建物化视图时,oracle 将自动创建一个内部表,该表将保存您的物化视图的数据。
【讨论】:
-1 视图是存储查询,物化视图可以基于表或视图(或者实际上,基于另一个物化视图)。保持 DRY 的原则是有意义的,因此视图上的 MV 可能是一个好主意。以上是关于我在oracle数据库中的一个视图中添加了一行,提示添加成功,但在视图中查不到,是啥原因?的主要内容,如果未能解决你的问题,请参考以下文章
Telerik gridview:数据库更改后如何刷新网格视图