Laravel Eloquent - 独家交易。

时间:2014-04-23 09:47:02

标签: php transactions laravel-4 locking eloquent

我有一个表,有两列,A和B.集合(A,B)是唯一的,但B不是唯一的。每当我向表中添加一行时,我希望B获得下一个可用的数字 - 所以如果表格有:

A   B
1   1
1   2
2   1
2   2
2   3

如果A = 1,那么插入的下一行将具有B = 3,如果A = 2,则B = 4。

因此,给定A,我需要从表中选择MAX(B)以了解新值应该是什么,然后运行插入。但是,我想避免脚本的两个实例为B获取相同值的情况,因此我需要在运行select和insert作为单个事务之前在表上获得独占锁。

我能想到的唯一选择是编写一个原始数据库查询来执行插入...选择,因为雄辩并不支持。如果可能的话,我宁愿使用雄辩的功能。那么有什么方法可以从laravel上获得桌面上的独占锁定吗?

这几乎与this question重复,但接受的答案是“以不同的方式做”,在这种情况下不起作用。

0 个答案:

没有答案