3
Oracle文檔指出FOR UPDATE
子句在子查詢中不受支持。 我有兩張表,父母和孩子。在代碼中,選擇父表中的隨機記錄並更新相應的子記錄。例如,表結構可能類似於:在Oracle的子查詢中SELECT ... FOR UPDATE的替代方法是什麼?
parent(obj_id string, status integer,....)
child(obj_id string, status integer, parent_id string,....)
和查詢可能是這樣的:
UPDATE child
set status =1
WHERE parent_id IN (SELECT obj_id
FROM parent where status = 1
and rownum < 10 FOR UPDATE SKIP LOCKED)
該查詢是從兩個不同的機器兩種不同的工藝執行。
你能解釋一下如何將FOR UPDATE
鎖定機制擴展到子查詢中嗎?
改寫選擇爲內部連接,並可以FOR UPDATE添加到查詢 –