是否有锁:
- 当约束从禁用更改为启用时?
- 虽然它正在从novalidate更改为validate?
文档说没有锁:
如果您将任何单个约束的状态从 ENABLE NOVALIDATE 更改为 ENABLE VALIDATE,则该操作可以并行执行,并且不会阻塞读取、写入或其他 DDL 操作。
这里它说有一个锁:
表中的约束是使用 INITIALLY IMMEDIATE 子句定义的。您执行了带有 ENABLE VALIDATE 选项的 ALTER TABLE 命令以启用已禁用的约束。当约束处于启用过程中时,它会阻止对表的插入、更新和删除操作。