mysql - 执行更新时锁定两个表的最佳方法
问题描述
我有一个系统可以增加和减少值,然后将它们应用于总值。所以我的桌子看起来像这样increment_value_table
,,decrement_value_table
total_value_table
我有一个名为的函数updateValues
,它检查increment_value_table
&decrement_value_table
是否有任何更改应用于total_value_table
表。每个值也有一个item_id
. 因此可以同时更新多个 item_id。
只要不同时调用两次,此函数就可以正常工作。因为它可能导致重复increment
或decrement
. 所以我试图想办法设置它,以便这个函数的一个实例可以同时运行。解决方案需要在数据库级别,因为有多个服务器(即本地布尔值或数组不起作用)
我目前的解决方案/想法是基本上在数据库中创建一个具有唯一列的表,item_id
并且每次尝试更新函数时,它都会检查 item_id 是否存在。如果不是,它会尝试插入它。如果它成功插入它,那么它会执行更新。完成后,它会从数据库中删除它。
我想知道这是否是正确的方法和/或这是否会导致问题?
如果我的问题/问题不够清楚,请告诉我。我会尝试改写它。
解决方案
推荐阅读
- mysql - 是否可以对 MySQL 中的组进行子计数
- r - R帮助:保持一个变量不变的F统计回归测试
- reporting-services - SQL Reporting Services:链接的报表参数未更新
- go - 指针接收器中未解析的类型
- php - PHP - 像这样获取帖子:变量中的联系人[id]
- node.js - 如何禁止添加具有相同objectId的mongodb中已经存在的较小数字?
- javascript - Fetch 是空的 Redux Saga
- xml - Excel 到 XML xsd:date 模式格式,xsd 的“what if”语句?
- python - 烧瓶选择表单未在请求中发送完整的选项值
- mysql - 从表中获取记录并将它们放在新表中