首页 > 解决方案 > 如何保证更新mysql中的最新行

问题描述

假设我有一个名为table_config

id ,bigint(20),primary key,
table_id, varchar,
x, varchar,
y, varchar
active, tinyint

每个 table_id 应该只有 1 条active记录。每次我想更新x时,我都会为该 table_id 创建一条新记录,并为旧记录设置 active=0 。

现在我只想更新y而不创建新记录。所以我在我的 java 应用程序中执行以下步骤:

  1. 阅读旧记录。
  2. 设置y为新值。
  3. 通过主键(id)更新记录

我的问题是,当我更新记录时,我如何保证x在执行上述步骤期间没有新记录发生更改,或者,我如何保证我在 table_id 的最新记录上更新 y?

这会工作吗?:

UPDATE table_config
set y='y'
where id=(SELECT id from table_config whre table_id=`table_id` and active=1);

谢谢关心。

标签: mysqldatabase

解决方案


推荐阅读