oracle视图view看不出来主键,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>来自documentation:

View Constraints

Oracle does not enforce view constraints. However, operations on views

are subject to the integrity constraints defined on the underlying

base tables. This means that you can enforce constraints on views

through constraints on base tables.

Notes on View Constraints View constraints are a subset of table

constraints and are subject to the following restrictions:

You can specify only unique, primary key, and foreign key constraints

on views. However, you can define the view using the WITH CHECK OPTION

clause, which is equivalent to specifying a check constraint for the

view.

View constraints are supported only in DISABLE NOVALIDATE mode. You

cannot specify any other mode. You must specify the keyword DISABLE

when you declare the view constraint. You need not specify NOVALIDATE

explicitly, as it is the default.

The RELY and NORELY parameters are optional. View constraints, because

they are unenforced, are usually specified with the RELY parameter to

make them more useful. The RELY or NORELY keyword must precede the

DISABLE keyword. Please refer to "RELY Clause" for more information.

Because view constraints are not enforced directly, you cannot specify

INITIALLY DEFERRED or DEFERRABLE.

You cannot specify the using_index_clause, the exceptions_clause

clause, or the ON DELETE clause of the references_clause.

You cannot define view constraints on attributes of an object column.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值