推进行锁批量更新问题

时间:2009-08-03 08:17:06

标签: propel

我使用Propel作为我的ORM。

我需要使用以下字段对表进行批量更新:

ID
Company
Assigned

更新将采用Company数组,并将Assigne d字段设置为1

问题是可能会同时发生2次批量更新。所以,当发生这种情况时,我将不得不接受一次更新,并拒绝另一次更新。反正有没有锁定表进行一次批量更新?或者有更好的解决方案吗?

1 个答案:

答案 0 :(得分:1)

这是我找到的解决方案。

更好的方法是在执行批量更新时使用以下等效查询

,而不是锁定它
update table 
set Assigned=2
where Assigned=1
and Company in {company1, company2}

现在,如果返回的行数与所选的Company数不同,则整个操作应为rolled back

相关问题