測試:
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下了解.
本文寫的較亂,只為存疑記錄.有待進一步了解學習.