【问题标题】:RELY Constraint in View视图中的 RELY 约束
【发布时间】:2015-03-21 07:36:53
【问题描述】:

同时学习 inline_constraint 和 out_of_line_constraint 以供查看。我在 oracle 文档中得到了这个例子。http://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_8004.htm#i2126714

CREATE VIEW emp_sal (emp_id, last_name, 
      email UNIQUE RELY DISABLE NOVALIDATE,
   CONSTRAINT id_pk PRIMARY KEY (emp_id) RELY DISABLE NOVALIDATE)
   AS SELECT employee_id, last_name, email FROM employees;

我对这句话有很多疑问:
1) 什么是依赖约束 - 当查询通常访问视图而不是基表时,此约束很有用,因此 DBA 需要定义视图而不是表之间的数据关系。
但在此示例中,它不是物化视图,因此只能通过基表访问数据。您能否解释一下函数以及何时使用依赖约束。
2)如果我们像在这个声明中那样禁用它,那么唯一键的用途是什么。

【问题讨论】:

    标签: sql oracle oracle11g oracle10g sql-view


    【解决方案1】:

    1) 什么是依赖约束

    视图约束,因为它们是非强制的,通常用 RELY 参数指定,以使它们更有用。

    http://docs.oracle.com/cd/B19306_01/server.102/b14200/clauses002.htm#i1002565

    指定 RELY 以在 NOVALIDATE 模式下激活现有约束,以便在非强制查询重写完整性模式下进行查询重写。

    http://docs.oracle.com/cd/B19306_01/server.102/b14200/clauses002.htm#i1002915

    这意味着如果物化视图是基于视图创建的,它可能依赖于允许重写某些查询以使用物化视图而不是查询基表的约束。

    2) 如果我们像在这个语句中那样禁用它,那么唯一键的用途是什么

    必须禁用视图上的所有唯一约束。基本上,这些对于允许重写查询很有用。

    【讨论】:

    • 谢谢杰弗里。我仍然有疑问,我正在阅读这个。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多