9.4.2 视图约束的修改

当视图创建完成后,可以对其约束进行添加、删除、修改操作。下面以示例1创建的SIMPLE_PRODUCTINFO_VIEW视图为例,讲解对视图约束的操作。

(1)增加视图约束

主要语法如下:


ALTER VIEW[schema.]view

ADD[CONSTRAINT constraint_name]

{UNIQUE(column[,column]…)

|PRIMARY KEY(column[,column]…)

|FOREIGN KEY(column[,column]…)

references_clause

|CHECK(condition)

}

[constraint_state]


【语法说明】

❑ALTER VIEW:表示修改视图的关键词。

❑ADD[CONSTRAINT constraint_name]:为视图增加一项约束,可以带约束名称。

❑UNIQUE:唯一约束。

❑PRIMARY KEY:主键约束。

❑FOREIGN KEY:外键约束。

❑CHECK:检查约束。

❑constraint_state:约束声明。

【示例11】为视图增加唯一约束

在PL/SQL Developer中执行的具体脚本如下:


01 ALTER VIEW SIMPLE_PRODUCTINFO_VIEW

02 ADD CONSTRAINT PUTPRIC_UNQ UNIQUE (PRODUCTPRICE)

03 DISABLE NOVALIDATE;


【代码解析】

❑第1~2行表示视图SIMPLE_PRODUCTINFO_VIEW增加唯一约束。约束名称是PUTPRIC_UNQ。

❑第3行表示此前数据和以后数据都不进行检查。

【执行效果】

为视图增加唯一约束完成后可以查看执行结果。执行下面的脚本,从用户约束表里查看增加约束是否成功:


SELECT CONSTRAINT_NAME,TABLE_NAME,R_OWNER,R_CONSTRAINT_NAME

FROM USER_CONSTRAINTS

WHERE TABLE_NAME='SIMPLE_PRODUCTINFO_VIEW';


执行完成后发现视图增加约束成功,如图9.18所示。

9.4.2 视图约束的修改 - 图1

图 9.18 增加的视图约束列表

(2)删除视图约束

主要语法如下:


ALTER VIEW[schema.]view DROP CONSTRAINT constraint_name;


【示例12】删除视图中的约束

要求删除视图SIMPLE_PRODUCTINFO_VIEW的PUTPRIC_UNQ约束。具体脚本如下:


ALTER VIEW SIMPLE_PRODUCTINFO_VIEW

DROP CONSTRAINT PUTPRIC_UNQ;


【执行效果】

执行方式参考约束增加部分,提示成功后,再查询约束表数据,发现视图SIMPLE_PRODUCTINFO_VIEW名称为PUTPRIC_UNQ的唯一约束已经被删除。