Oracle DB表与视图的关系(物化视图)
Posted
技术标签:
【中文标题】Oracle DB表与视图的关系(物化视图)【英文标题】:Oracle DB relationship between table and view(materialized view) 【发布时间】:2015-02-11 10:05:39 【问题描述】:如何在表和视图之间创建引用?我有一个视图,它由通过 UNION 创建的两个表组成(这些表的 ID 是相同序列器的唯一原因)。 我尝试在视图中创建主键并进行参考,但它对我不起作用?是否有可能使它像那样或物化视图。它的遗留项目具有真正的大数据模型和大量视图。
【问题讨论】:
【参考方案1】:您不能在视图中使用键。这意味着
不能在视图中设置主键 您不能在外键中引用视图【讨论】:
【参考方案2】:根据 oracle 文档。您可以在视图上创建 PK(已禁用、未验证),但 FK 无法引用此 PK,因为它未经过验证
Oracle 数据库不强制执行视图约束。但是,您可以通过对基表的约束来强制对视图进行约束。
您只能指定唯一、主键和外键约束 在视图上,它们仅在 DISABLE NOVALIDATE 模式下受支持。你 无法在对象列的属性上定义视图约束。
来自http://docs.oracle.com/cd/B28359_01/server.111/b28286/clauses002.htm#SQLRF52163
【讨论】:
是的,主键处于禁用状态,但是是否有可能创建从表到物化视图的引用,因为我的同事告诉我这是可能的。 @Milkmaid:如果 PK 未经过验证,您将无法对该 PK 进行 FK 引用,因为约束应该是有效的以上是关于Oracle DB表与视图的关系(物化视图)的主要内容,如果未能解决你的问题,请参考以下文章