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
功能的包装器,它基本上锁定选定的行并发更新。
您需要将锁包装到事务中,以便在事务执行结束之前访问将被锁定。
我有一个整数值的行,该行有很多并发请求,我希望每个读取操作之后都有一个更新操作(增量),并保持数据一致,只有一个请求可以同时读取->更新。
我做了一些研究并弄清楚了 select_for_update(),我还想过在 SELECT 上触发以在选择它之后增加值,问题是..这会像我一样工作吗假设?
触发器是并行工作还是以这种方式保持一致?
django select_for_update
是大多数常见数据库(postgres、mysql、oracle...)中存在的 select ... for update
功能的包装器,它基本上锁定选定的行并发更新。
您需要将锁包装到事务中,以便在事务执行结束之前访问将被锁定。