1
有沒有辦法鎖定最近插入的行,以便其他事務在我目前的事務仍在繼續時不會看到它?鎖定新插入的行[PostgreSQL]
有沒有辦法鎖定最近插入的行,以便其他事務在我目前的事務仍在繼續時不會看到它?鎖定新插入的行[PostgreSQL]
你不需要。事實上,你不能有相反的行爲。在您的事務提交之前,無法讓新插入的行可見。
儘管它對於併發SELECT
不可見,但它仍然可以影響併發INSERT
(或UPDATE
)。具體來說,如果您嘗試在兩個不同的事務中將相同的值插入到唯一索引中,則會阻塞另一個事務,直到其他事務提交或回滾。然後它會決定是否需要引發唯一的違規錯誤,或者是否可以繼續。所以雖然你不能直接看到未提交的數據,但有時你可以看到它的副作用。
如果您在事務中插入'INSERT',那麼在該事務發出'COMMIT'之前,它將不會被任何其他連接看到。沒有必要執行任何額外的鎖定。 – jmelesky
謝謝,是啊,我只是意識到這一點!對於所有的隔離級別,它都有這種行爲 – Zanko