0

我使用Propel作为我的 ORM。

我需要对包含以下字段的表进行批量更新:

ID
Company
Assigned

更新将接收一个数组Company并将Assigned 字段设置为1

问题是可能同时发生 2 个批量更新。所以当这种情况发生时,我将不得不接受一个更新,并拒绝另一个。无论如何要锁定表以进行一批更新?还是有更好的解决方案?

4

1 回答 1

1

这是我找到的解决方案。

而不是锁定它,更好的方法是在进行批量更新时使用以下等效查询

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

现在,如果返回的行数与Company选择的行数不同,则应该回滚整个操作。

于 2009-08-11T11:40:46.910 回答