WEB开发网
开发学院数据库Oracle Oracle数据库的完整性约束规则详解 阅读

Oracle数据库的完整性约束规则详解

 2007-05-11 12:22:07 来源:WEB开发网   
核心提示: CONSTRAINT constraint_name (column)UNIQUE USING INDEX TABLESPACE(tablespace_name) STORAGE (stored clause)唯一性约束由一个B-tree索引增强,所以可以在USING子串中为索引使用特殊特
CONSTRAINT constraint_name (column)
UNIQUE USING INDEX TABLESPACE
(tablespace_name) STORAGE (stored clause)

唯一性约束由一个B-tree索引增强,所以可以在USING子串中为索引使用特殊特征,比如表空间或存储参数。CREATE TABLE语句在创建唯一性约束的同时也给目标数据列建立了一个唯一的索引。

CREATE TABLE insured_autos
(policy_id NUMBER CONSTRAINT pk_policies PRIMARY KEY,
vin VARCHAR2(10),
coverage_begin DATE,
coverage_term NUMBER,
CONSTRAIN unique_auto UNIQUE (policy_id,vin) USING
INDEX TABLESPACE index STORAGE (INITIAL 1M NEXT 10M PCTINCREASE 0)
);

用户可以禁用未以性约束,但他仍然存在,禁用唯一性约束使用ALTER TABLE 语句。

ALTER TABLE insured_autos DISABLE CONSTRAIN unique_name;

删除唯一性约束,使用ALTER TABLE....DROP CONSTRAIN语句:

ALTER TABLE insured_autos DROP CONSTRAIN unique_name;

注意用户不能删除在有外部键指向的表的唯一性约束。这种情况下用户必须首先禁用或删除外部键(foreign key)。删除或禁用唯一性约束通常同时删除相关联的唯一索引,因而降低了数据库性能。经常删除或禁用唯一性约束有可能导致丢失索引带来的性能错误。要避免这样错误,可以采取下面的步骤:

1、在唯一性约束保护的数据列上创建非唯一性索引。

2、添加唯一性约束。

主键(Primary Key)约束

表有唯一的主键约束。表的主键可以保护一个或多个列,主键约束可与NOT NULL约束共同作用于每一数据列。NOT NULL约束和唯一性约束的组合将保证主键唯一地标识每一行。像唯一性约束一样,主键由B-tree索引增强。创建主键约束使用CREATE TABLE语句与表一起创建,如果表已经创建了,可以使用ALTER TABLE语句。

上一页  1 2 3 4 5 6  下一页

Tags:Oracle 数据库 完整性

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接