文件名称:管理完整性约束-the design and analysis of algorithms
文件大小:4.17MB
文件格式:PDF
更新时间:2024-06-29 04:38:55
达梦,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