2009-08-03 48 views
0

我正在使用Propel作爲我的ORM。行走鎖批量更新問題

我需要做的批量更新一個表具有以下字段:

ID 
Company 
Assigned 

更新將需要在Company陣列和Assigne d字段設置爲1

問題是可能有兩個批處理更新同時發生。所以當發生這種情況時,我將不得不接受一個更新,並拒絕另一個更新。無論如何要鎖定表的一個批量更新?還是有更好的解決方案?

+0

也許這將有助於:http://markmail.org/message/4g6l6jmji6t66sry – 2009-08-03 08:37:22

回答

1

這是我找到的解決方案。

而不是鎖定它的,更好的方法是使用下面的等效查詢做批量更新

update table 
set Assigned=2 
where Assigned=1 
and Company in {company1, company2} 

當現在,如果返回的行數是不一樣的Company選擇的號碼,那麼整個操作應該是rolled back