7.6.4 对象模式和违反检测
数据库的对象模式和违反检测可帮助您监视数据完整性。在模式更改期间,或当对于短期
内大批量数据执行插入、删除和更新操作时组合这些特性,这些特性特别有效。
在对象模式特性的讨论的上下文之内,数据库对象是约束、索引和触发器,且它们中的每
一个都有不同的模式。请不要将与对象模式特性相关的数据库对象与一般的数据库对象相
混淆。一般的数据库对象是诸如表和同义词之类的对象。
对象模式的定义
您可为约束或唯一索引设置禁用、启用或过滤模式。您可为触发器或重复索引设置启用或
禁用模式。您可使用数据库对象模式来控制 INSERT、DELETE 和 UPDATE 语句的效果。
启用模式
在缺省情况下,约束、索引和触发器是启用的。
当数据库对象是启用的时,数据库服务器识别该数据库对象的存在,并在它执行 INSERT、
DELETE 或 UPDATE 语句时考虑该数据库对象。因此,当触发器事件发生时,强制执行
启用的约束,更新启用的索引,并执行启用的触发器。
当您启用约束和唯一索引时,如果存在违反的行,则该数据处理语句失败(即,不更改行)
且数据库服务器返回错误消息。
当您分析违反表和诊断表中的信息时,您可标识该失败的原因。然后,您可采取更正活动
或回滚该操作。
禁用模式
当数据库对象是禁用的时,在执行 INSERT、DELETE 或 UPDATE 语句时,数据库服务
器不考虑它。当触发器事件发生时,不强制执行禁用的约束,不更新禁用的索引,也不执
行禁用的触发器。当您禁用约束和唯一索引时,违反该约束或唯一索引的限制的任何数据
操纵语句都成功,(即,更改目标行),且数据库服务器不返回错误消息。
过滤模式
当约束或唯一索引处于过滤模式时,该语句成功,且在 INSERT、DELETE 或 UPDATE 语
句期间,通过将失败了的行写到与该目标表相关联的违反表,数据库服务器强制满足约束
或唯一索引需求。将关于该约束违反的诊断信息写到与目标表相关联的诊断表。
GBase 8s V8.8 SQL 指南:教程-7.6.4(1)
最新推荐文章于 2024-11-09 21:51:58 发布