0
如何實現一個事務讀取的行不被另一個事務讀取的情況?我如何實現一個事務讀取的行不被另一個事務讀取的情況?
從我的一個表格與列A-F,我需要選擇max(columnA)
。用最大值和基於一些計算,我將不得不執行其他插入語句。
使用可序列化的隔離級別,2個事務正在讀取相同的最大值。這導致鎖等待一個事務並在另一個事務上發生死鎖。
如何實現一個事務讀取的行不被另一個事務讀取的情況?我如何實現一個事務讀取的行不被另一個事務讀取的情況?
從我的一個表格與列A-F,我需要選擇max(columnA)
。用最大值和基於一些計算,我將不得不執行其他插入語句。
使用可序列化的隔離級別,2個事務正在讀取相同的最大值。這導致鎖等待一個事務並在另一個事務上發生死鎖。
您可能無法完全基於隔離級別來解決此問題。
您可以進行的設計更改是分別存儲最大值,並具有三級標誌以及記錄 - 最大值處理,處理和未處理。因此,無論何時事務從表中讀取最大值,它都可以檢查最大值是否已被處理。如果是這樣,它不執行其他插入語句。
簽出在[這個鏈接]的溶液[1] [1]:http://stackoverflow.com/questions/2051225/how-to-deliberately-lock-a-mysql-row -such - 即偶數選擇意志 - 返回一個錯誤 – 2012-07-31 19:25:18