一行上完全同一时间有多个Update语句

迪帕克·辛格|

在一种情况下,我收到客户的出租车请求,然后将取车请求发送给多个驾驶员。现在,想象一下,如果有两个收到请求的驾驶员完全同时按下了“接受”按钮,那么哪个驾驶员将乘车。

我有一个带有ride_id,driver_id,complied(Boolean)列的行驶表。

到目前为止,我正在做的就是在点击“接受”按钮后立即调用API。该GET请求API会检查行程是否满足。如果是,我会向驾驶员显示一条消息,说骑行已经完成,否则我会遇到另一个POST API请求,该请求会将数据库中的已实现值更新为true并更新driver_id。

现在来看我们的场景,当两个驱动程序都同时点击“接受”时,将发出两个GET请求,并且两个驱动程序都将获得“未实现”,因为随后的响应都将发送一个POST请求。现在我很困惑谁的数据将在数据库中更新。

我在MySQL后端使用PHP进行数据库。

专线小巴

您正在通过运行SELECT,然后运行来创建竞争条件UPDATE但是所有数据库可以非常有效地做的一件事就是管理并发。因此,一个更简单的解决方案是当驱动程序按下接受按钮时直接运行更新,例如:

UPDATE ride 
SET driver_id = :driver_id, fulfilled = 1 
WHERE ride_id = :ride_id AND fulfilled = 0

然后在您的应用程序中,检查记录是否受查询影响。如果是,则该驾驶员获胜。如果没有记录受到影响,则意味着之前有其他驾驶员接管了该旅程。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

当多个条目存在同一时间戳时如何更新时间

气流在同一时间在同一时间运行任务?

Angular 2-多个HTTP请求在同一时间

Android gradle:所有buildTypes都在同一时间执行

将属于同一时间段的所有行归入熊猫

Java如何保证同一时间只有一个请求

VBA中的时间比较:同一时间不相等

熊猫从同一时间的多个交易的数据帧计算结果数据帧

当多个线程要求在同一时间被加载相同的类会发生什么?

R:如何在同一时间序列上绘制多个ARIMA预测

鼠标悬停在同一时间在2 div上发生事件

pg_rewind:源集群和目标集群在同一时间轴上

合并同一时间跨度内按发件人分组的消息行

如何将单个 Google Cloud SQL for PostgreSQL 实例上的多个数据库恢复到同一时间点?

如何确保在同一时间播放2个<video>(没有延迟)?

每天早上我几乎在同一时间没有互联网

XML DOM -- 在同一时间读取两个节点

保存在同一时间由对象使用JpaRepository

如何创建容器都在同一时间随机颜色?

点击2种元素在同一时间?

如何使用真正的类和在的Mockito同一时间?

统计同一时间段内的记录数

Kivy中同一时间的动画

扫描在同一时间的双重和炭值

PHP的:如何在同一时间消毒许多变量?

LARAVEL选择2代表在同一时间

Android使用AlarmManager在每天的同一时间设置重复任务

同一时间单位的值的总和

每天在同一时间做某事的Python脚本