【发布时间】:2026-01-21 04:10:02
【问题描述】:
如果两个独立的脚本调用数据库,对同一字段的更新请求具有不同的值,它们会同时执行并且一个覆盖另一个吗?
作为一个有助于确保清晰的示例,想象一下这两个语句被请求同时运行,每个语句都由不同的脚本执行,其中 Status = 2 巧合地在 Status = 1 之后被称为微秒。
Update My_Table SET Status = 1 WHERE Status= 0;
Update My_Table SET Status = 2 WHERE Status= 0;
我的结果是什么,为什么?如果有其他因素发挥作用,请尽可能多地扩展它们,这只是一个总体思路。
旁注: 因为我知道人们仍然会问,我的情况是将 MySql 与 Google App Engine 一起使用,但我不想将这个问题仅限于我,如果它对其他人有用的话。我使用 Status 作为脚本对该字段执行操作的标识符。如果 status 不为 0,则不允许其他脚本触摸它。
【问题讨论】:
-
这可能因所使用的 RDBMS 而异,您应该使用您的 RDBMS 标记您的问题(根据问题的主体,这听起来像 mysql)
标签: mysql sql sql-update