场景:我们有表 A(父表)引用表 B(子表),并且我们有每个外键的外键索引。
操作:现在当任何用户从表 A 中删除一行时,即使子表中没有引用记录,表 B 也会被锁定。由于该表已锁定,因此其他用户无法再对表 A 执行任何操作。
理解:我想当表B中存在一些子记录时,只有当父记录涉及某些事务并且其他用户仍然可以在表A的其他行上工作时,才应该锁定所选行。
问题:当我们有外键并且创建了外键索引但没有子记录存在时,它是如何工作的。整张桌子还锁着?如果是的话如何摆脱它呢?
注意:我使用的是 Oracle 12c。