知识大全 视图刷新过程中出现的约束冲突问题
Posted 视图
篇首语:博观而约取,厚积而薄发。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 视图刷新过程中出现的约束冲突问题相关的知识,希望对你有一定的参考价值。
本文中 我们通过实例的方法来帮助您理解物化视图刷新过程中出现的约束冲突问题
即使将物化视图的约束建立和基表完全一致 由于物化视图的刷新机制 也会产生约束冲突的现象
以下是一个简单的示例
SQL> CREATE TABLE T (ID NUMBER PRIMARY KEY NAME VARCHAR ( )); 表已创建 SQL> ALTER TABLE T ADD CONSTRAINT UN_T_NAME UNIQUE (NAME); 表已更改 SQL> CREATE MATERIALIZED VIEW LOG ON T; 实体化视图日志已创建 SQL> CREATE MATERIALIZED VIEW MV_T REFRESH FAST AS SELECT * FROM T; 实体化视图已创建 SQL> ALTER TABLE MV_T ADD CONSTRAINT UN_MV_T_NAME UNIQUE (NAME); 表已更改 SQL> INSERT INTO T VALUES ( A ); 已创建 行 SQL> INSERT INTO T VALUES ( B ); 已创建 行 SQL> MIT; 提交完成 SQL> EXEC DBMS_MVIEW REFRESH( MV_T ) PL/SQL 过程已成功完成
上面构造了一个简单的物化视图 物化视图和基表建立了相同的唯一约束
下面进行一个循环的更新操作 然后观察刷新的情况
SQL> UPDATE T SET NAME = C WHERE ID = ; 已更新 行 SQL> UPDATE T SET NAME = A WHERE ID = ; 已更新 行 SQL> UPDATE T SET NAME = B WHERE ID = ; 已更新 行 SQL> MIT; 提交完成 SQL> EXEC DBMS_MVIEW REFRESH( MV_T ) BEGIN DBMS_MVIEW REFRESH( MV_T ); END; * ERROR 位于第 行: ORA : 实体化视图的刷新路径中存在错误 ORA : 违反唯一约束条件 (YANGTK UN_MV_T_NAME) ORA : 在 SYS DBMS_SNAPSHOT line ORA : 在 SYS DBMS_SNAPSHOT line ORA : 在 SYS DBMS_SNAPSHOT line ORA : 在line
刷新失败了 解决这个问题的一个方法是对于物化视图不建立唯一约束 唯一性由基表保证 但是这种方法只对只读物化视图适用 而且 缺少唯一约束信息 可能会影响SQL的执行计划
这种情况下 最好的解决方法是建立延迟约束
SQL> ALTER TABLE MV_T DROP CONSTRAINT UN_MV_T_NAME; 表已更改 SQL> ALTER TABLE MV_T ADD CONSTRAINT UN_MV_T_NAME UNIQUE (NAME) DEFERRABLE; 表已更改 SQL> EXEC DBMS_MVIEW REFRESH( MV_T ) PL/SQL 过程已成功完成
cha138/Article/program/Oracle/201311/18802相关参考
作为phper我们在开发和学习php过程中难免要经常的接受处理表单数据然而处理表单的时候总会有一个问题困扰大家刷新页面重复提交的问题如何防止刷新页面重复提交呢? 其实在php学习中我们会有很多的
公共政策的实质是解决社会矛盾和冲突中的利益分配问题。_____答案:正确解析:公共政策的实质是通过公共政策程序正义保证分配过程的公平公正,以平衡相关主体的利益关系。故本题判断正确。
详解.NET编程过程中的线程冲突 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 一什么是线程冲突
在应用系统开发初期由于开发数据库数据比较少对于查询SQL语句复杂视图的编写刚开始不会体会出SQL语句各种写法的性能优劣但是如果将应用系统提交实际应用后随着数据库中数据的增加系统的响应速度就成为目前
在使用PowerPoint过程中,在幻灯片视图窗格下使用快捷键Shift+F5,将在屏幕上看到__
在使用PowerPoint过程中,在幻灯片视图窗格下使用快捷键Shift+F5,将在屏幕上看到_____。A、只放映当前的一张幻灯片B、从当前幻灯片开始放映剩余的幻灯片C、从第一张幻灯片开始全屏幕放映
详解.NET编程过程中的线程冲突[3] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 四互斥锁
项目中遇到刷新后重复的向数据库增加一条相同的记录引出错误归纳得出问题是 怎样防止页面刷新或后退引起重复提交数据的问题 其实防止刷新是开发中经常遇到的问题通常有多种方法来实现(下面是一些解决方案
详解.NET编程过程中的线程冲突[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 一什么是线
详解.NET编程过程中的线程冲突[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 比如说我在
进入新世纪新阶段,我国农业、农村正在发生重大而深刻的变化,出现了很多新情况、新矛盾、新问题。农业资源环境和市场约束增强
进入新世纪新阶段,我国农业、农村正在发生重大而深刻的变化,出现了很多新情况、新矛盾、新问题。农业资源环境和市场约束增强,保障农产品供求平衡、农民持续增收难度加大。从总体上看,_____。A、我国农业的