【文件属性】:
文件名称:管理完整性约束-the design and analysis of algorithms
文件大小:4.17MB
文件格式:PDF
更新时间:2021-06-09 10:52:15
达梦,DM7
15.4 管理完整性约束
完整性约束规则,限制表中一个或者多个列的值。约束子句可以出现在 CREATE TABLE
或者 ALTER TABLE语句中,确定约束条件并指定受到约束的列。
15.4.1完整性约束状态
用户可以指定一个约束是启用(ENABLE)或禁止(DISABLED)。如果启用一个约束,
那么在插入数据或者是更新数据时会对数据进行检查,不符合约束的数据被阻止进入。如果
约束是禁止(DISABLED)的,不符合约束的数据被允许进入数据库。
1. 禁止约束
要执行完整性约束定义的规则,约束应当设置为开启状态。但是,在下面的情况下,从
性能的角度考虑,可以暂时将完整性约束禁用。
1) 导入大量的数据到一张表中;
2) 做批处理操作并对一张表做大规模修改时;
3) 导入导出一张表。
在上面三种情形下,暂时禁用完整性约束能提高系统的性能,特别是在数据仓库的情况
下。在禁用约束的情况下,可以将违反约束规则的数据插入到表中,因此,用户应当在上面
列表中的操作结束之后启用约束。
2. 启用约束
在启用完整性约束的情况下,不满足约束规则的行是不能插入到表中的。
15.4.2 定义完整性约束
下面的 CREATE TABLE和 ALTER TABLE语句在定义的时候就启用完整性约束:
CREATE TABLE t_con (
id NUMBER(5) CONSTRAINT t_con_pk PRIMARY KEY);
ALTER TABLE t_con
ADD CONSTRAINT t_con_pk PRIMARY KEY (id);
使用 ALTER TABLE语句来启用完整性约束,可能会失败,这是因为表中已存在的数据
可能违反完整性约束条件。
当启用 UNIQUE或者 PRIMARY KEY约束时,系统就会创建一个对应的索引。
15.4.3修改或删除现有的完整性约束
用户可以使用 ALTER TABLE语句来启用、禁止、删除一个约束。当用户使用 UNIQUE
或者 PRIMARY KEY约束时,系统会创建对应的索引;当这个约束被删除或者是被禁用,索
引就会被删除。
1. 禁用已被启用的约束
下面的 ALTER TABLE语句可以禁止完整性约束:
ALTER TABLE t_con DISABLE CONSTRAINT t_con_pk;
当有外键引用 UNIQUE或者 PRIMARY KEY列时,用户不能禁用 UNIQUE或者 PRIMARY