我有一个名为blocks的表,它的主键是blockid。数据以0开头。现在,问题是,在另一个表中,blockid从1开始。所以,我需要将blockid's中的所有blockid's都加1。
我该怎么做?
有没有一个方便的函数来做这个,或者我们需要写一个?或者,我必须手动更改所有内容吗(这不会花费太长时间,但有100多行,所以,如果不必这样做的话,我更愿意这样做)。
谢谢你的一切。

最佳答案

假设blockid不是OP的主键,一种快速而肮脏的方法是按顺序运行两个update语句:

UPDATE blocks
SET blockid = blockid + 1001

UPDATE blocks
SET blockid = blockid - 1000

在第一次更新中,将所有blockid增加1001。1000只是一个任意大的数字,允许您避免与其他ID冲突(假设您有唯一性约束)
在第二条语句中,您将减少1000,使所有id都增加1,同时还避免了冲突。
如果1000英寸不是一个足够大的数字,你可以增加它,使它任意大。只需确保与第二次更新中的数字和数学匹配即可。

10-08 04:38