暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

GBae 8s SQL 指南:语法_2. SQL 语句_2.122 SET Database Object Mode 语句(12)

GBASE数据库 2022-04-18
154

外键约束的 FILTERING NOVALIDATE 模式
在 SET Database Object Mode 语句正在将外键约束的模式更改为 FILTERING WITHOUT ERROR
或 FILTERING WITH ERROR 时,数据库服务器通过检测受约束的表中的每一行验证该约束,来
确保带有相应的值的行在被引用的表的主键列中存在。此验证可需要大量时间和资源。在 SET
Database Object 模式操作期间您可替代地绕过对违反行的搜索,通过包括 NOVALIDATE 关键字来
将外键约束模式更改为 FILTERING WITHOUT ERROR NOVALIDATE 或 FILTERING WITH
ERROR NOVALIDATE。对于大型表,指定 ENABLED NOVALIDATE 可显著地减少将外键约束的
模式更改为过滤模式所需的时间。
在 SET Database Object Mode 语句成功地启用外键约束之后,
⚫ 在 sysobjstate 系统目录表中,该约束被注册为 FILTERING WITHOUT ERROR 模式
(F)或 FILTERING WITH ERROR 模式(G),
⚫ 但 NOVALIDATE 关键字没有编码且无后续的影响。
在后续的 DML 操作期间,数据库服务器将外键约束强制作为指定的 SET CONSTRAINTS 语句,
带有或不带有完整性违反错误,来维护数据库的引用的完整性。
启动和停止违反表和诊断表
您必须为在其上定义数据库对象的目标表使用 START VIOLATIONS TABLE 语句来启动违反表和
诊断表,或在您将定义的任何数据库对象设置为过滤模式之前,或在您将数据库对象设置为过滤之
后,但要在任何用户发出 INSERT、DELETE 或 UPDATE 语句之前。
如果您想要停止数据库服务器将坏记录过滤到违反表并将每一坏记录的诊断信息发送到诊断表,则
必须发出 STOP VIOLATIONS TABLE 语句。
要获取关于这些语句的进一步信息,请参阅 START VIOLATIONS TABLE 语句 和 STOP
VIOLATIONS TABLE 语句。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论