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.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的唯一约束已经被删除。