启用或禁用引用约束
可以使用 "更改物理文件约束" (CHGPFCST) 命令来启用或禁用引用约束。
要启用或禁用引用约束关系,请使用 CHGPFCST 命令。 更改引用约束时必须指定从属文件; 不能通过指定父文件来禁用或启用约束。
必须对从属文件具有最低对象管理权限 (或 ALTER 特权) 才能启用或禁用约束。
详细信息: 启用或禁用引用约束
当系统启用或禁用约束时,它将锁定父文件和从属文件,两个成员以及两个访问路径。 当启用或禁用操作完成时,它将除去锁定。
尝试启用已启用的约束或禁用已禁用的约束只会导致发出参考消息。
可以启用已建立/已禁用或检查暂挂约束关系。 启用操作将导致系统再次验证约束。 如果验证发现父键与外键之间不匹配,那么该约束将标记为检查暂挂。
如果用户具有正确的权限,那么禁用约束关系将允许对父文件和从属文件执行所有文件输入/输出 (I/O) 操作。 约束的整个基础结构仍然存在。 仍将保留父密钥和外键访问路径。 但是,不存在对禁用关系中的两个文件执行的引用实施。 仍将实施所有剩余的已启用约束。
禁用约束可允许在性能紧急情况下的文件 I/O 操作更快地运行。 总是在这种情况下考虑权衡。 文件数据可能变为引用无效。 当启用约束时,根据文件大小,系统将需要时间来重新验证引用约束关系。
注: 修改具有处于 "已建立" 和 "已禁用" 状态的约束关系的文件时,用户和应用程序必须谨慎。 在再次启用约束之前,可以违反并且不会检测到关系。
"分配对象" (ALCOBJ) 命令可以在禁用约束关系时分配 (锁定) 文件。 此分配将阻止其他用户在此引用约束关系处于禁用状态时更改文件。 在命令上指定 "互斥读取" (*EXCLRD) 的锁定状态,以便其他用户可以读取文件。 再次启用约束后, "释放对象" (DLCOBJ) 命令将解锁文件。
当您启用或禁用多个约束时,将按顺序处理这些约束。 如果无法修改约束,那么您将接收到诊断消息,并且该函数将继续执行列表中的下一个约束。 处理完所有约束后,您将收到一条完成消息,其中列出已修改的约束数。