Oracle 视图有主键吗,oracle - 用主键创建视图

最简单的答案就是你的语法不正确。您必须指定DISABLE。

NOVALIDATE禁用主键的验证,在视图中这是默认设置,因此会自动包含;但是如果使用它会更清晰,因为在可爱的双重否定中,disable novalidate禁用禁用主键的功能。

rely是可选的;它指定在创建视图时是否考虑主键。 rely的反义词是norely。

有上创建一个视图约束了很大的限制,并因为它依赖于下面的表格是不是真的值得的,因为已经@RC指出。但是,如果你需要它的文档只有在这里你去:

SQL> create table tmp_test (a number(10), b varchar2(120));

Table created.

SQL>

SQL> insert into tmp_test

2 select level, 'b'

3 from dual

4 connect by level <= 20

5 ;

20 rows created.

SQL> commit ;

Commit complete.

SQL>

SQL> alter table tmp_test

2 add constraint tmp_test_pk

3 primary key (a)

4 using index;

Table altered.

SQL>

SQL> create or replace view v_tmp_test (a, b

2 , constraint v_tmp_test_pk primary key (a) rely disable novalidate) as

3 select a, b

4 from tmp_test

5 ;

View created.

SQL>

视图约束

Oracle不强制视图约束。但是,视图 上的操作受底层 基表中定义的完整性约束的约束。这意味着您可以通过对基表的约束对视图 强制执行约束。

上查看约束笔记查看约束的表 约束的一个子集,并受到以下限制:

只能指定唯一,主键和外键约束 的看法。但是,您可以使用WITH CHECK OPTION 子句定义视图,该操作等同于为 视图指定检查约束。

只有在DISABLE NOVALIDATE模式下才支持视图约束。您 不能指定任何其他模式。声明视图约束时,必须指定关键字DISABLE 。您无需明确指定NOVALIDATE ,因为它是默认值。

RELY和NORELY参数是可选的。查看约束,因为 它们未被强制执行,通常用RELY参数指定为 使它们更有用。 RELY或NORELY关键字必须在 DISABLE关键字之前。有关更多信息,请参阅“RELY条款”。

因为视图约束不是直接执行的,所以不能指定 INITIALLY DEFERRED或DEFERRABLE。

您无法指定references_clause的using_index_clause,exceptions_clause 子句或ON DELETE子句。

您无法定义对象列的属性的视图约束。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值