MySQL select_for_update() 和触发器 .. 阻塞是如何工作的?

MySQL select_for_update() and triggers .. how blocking works?

我有一个整数值的行,该行有很多并发请求,我希望每个读取操作之后都有一个更新操作(增量),并保持数据一致,只有一个请求可以同时读取->更新。

我做了一些研究并弄清楚了 select_for_update(),我还想过在 SELECT 上触发以在选择它之后增加值,问题是..这会像我一样工作吗假设?

触发器是并行工作还是以这种方式保持一致?

django select_for_update 是大多数常见数据库(postgres、mysql、oracle...)中存在的 select ... for update 功能的包装器,它基本上锁定选定的行并发更新。

PostgreSQL docs

MySQL docs

您需要将锁包装到事务中,以便在事务执行结束之前访问将被锁定。