我使用Propel作为我的ORM。
我需要使用以下字段对表进行批量更新:
ID
Company
Assigned
更新将采用Company
数组,并将Assigne
d字段设置为1
。
问题是可能会同时发生2次批量更新。所以,当发生这种情况时,我将不得不接受一次更新,并拒绝另一次更新。反正有没有锁定表进行一次批量更新?或者有更好的解决方案吗?
答案 0 :(得分:1)
这是我找到的解决方案。
更好的方法是在执行批量更新时使用以下等效查询
,而不是锁定它update table
set Assigned=2
where Assigned=1
and Company in {company1, company2}
现在,如果返回的行数与所选的Company
数不同,则整个操作应为rolled back。