MySQL有什么方法可以轻松地将多行的列值减少20

MySQL有什么方法可以轻松地将多行的列值减少20,mysql,Mysql,我的数据库中有大约23000条记录,从4921到4940有20条重复记录。我可以很容易地删除重复项,但是我的id列(自动增量)值将不正确。因此,我的问题是:对于id大于4940的记录,有没有一种方法可以更改id列,而无需进行数千次查询 编辑:我意识到标题有点模糊。。。。我现在就编辑它。我不明白你为什么要这样做,或者为什么它很重要 或者这是某种“智能钥匙” 我可以想象,你可以很容易地做到这一点: UPDATE table SET key=key-20 WHERE key>4940; 我不明

我的数据库中有大约23000条记录,从4921到4940有20条重复记录。我可以很容易地删除重复项,但是我的
id
列(自动增量)值将不正确。因此,我的问题是:对于
id
大于4940的记录,有没有一种方法可以更改
id
列,而无需进行数千次查询


编辑:我意识到标题有点模糊。。。。我现在就编辑它。

我不明白你为什么要这样做,或者为什么它很重要

或者这是某种“智能钥匙”

我可以想象,你可以很容易地做到这一点:

UPDATE table
SET key=key-20
WHERE key>4940;

我不明白你为什么要这么做,或者为什么这很重要

或者这是某种“智能钥匙”

我可以想象,你可以很容易地做到这一点:

UPDATE table
SET key=key-20
WHERE key>4940;

如果您正在更改的密钥已经与其他记录相关,则这可能非常危险。你可能会破坏现有的关系。在一个ID字段中存在空白,其唯一目的是保持唯一性,这并不是一件坏事。一旦你开始给这个ID添加意义,而不是它必须是唯一的,你就是在自找麻烦。所以问题是为什么自动增量值不正确?如果需要删除记录,随着时间的推移会发生什么?那么您将有间隙,那么它们是否也不正确?如果您正在更改的密钥已经与其他记录相关,则这可能非常危险。你可能会破坏现有的关系。在一个ID字段中存在空白,其唯一目的是保持唯一性,这并不是一件坏事。一旦你开始给这个ID添加意义,而不是它必须是唯一的,你就是在自找麻烦。所以问题是为什么自动增量值不正确?如果需要删除记录,随着时间的推移会发生什么?你会有差距,所以他们也不正确吗?谢谢!我已经有一段时间没有在团队中处理数据库任务了,我对sql有点生疏了。再次感谢:)谢谢!我已经有一段时间没有在团队中处理数据库任务了,我对sql有点生疏了。再次感谢:)