测试:
session 1:
SQL> delete from emp where emp.deptno=10;
session 2:
SQL> delete from dept where deptno=40;
现象:在emp的字段deptno没有索引时session 2等待, 有索引则不等待.
结论:如果没有索引时,对父表的操作,会级联加一个TM S锁(level 4)到子表上;
如果有索引时,对父表的操作,会级联加一个TM RS锁(level 2)到子表上;
这时如果子表上本身就有个TM RX锁(这种锁很容易产生,insert update delete都会产生这种锁),
TM S锁和TM RX锁是互斥的, TM RS锁和TM RX锁是相容的.
-------
最后:其实想记录的是"外键未加索引的问题" .此问题可以google下了解.
本文写的较乱,只为存疑记录.有待进一步了解学习.