我有一个blocks用主键调用的表blockid.有数据开始blockid的0.现在的问题是,在另一个表中,blockid's从1开始所以,我需要得到所有的blockid's在blocks将递增1.
如何,我做到这一点?
有没有一个方便的功能来做到这一点,还是我们需要写一个?或者,我是否必须手动更改它(这不会花费太长时间,但有超过100行,所以,如果我不必这样做,我更喜欢它).
谢谢你的一切.
假设blockid不是OP的主键,可以通过顺序运行两个更新语句来快速而肮脏:
UPDATE blocks
SET blockid = blockid + 1001
UPDATE blocks
SET blockid = blockid - 1000
Run Code Online (Sandbox Code Playgroud)
在第一个UPDATE中,您将所有块数增加1001. 1000只是一个任意大的数字,可以避免与其他ID冲突(假设您有唯一性约束.)
在第二个语句中,您递减1000,使所有ID增加1,同时避免冲突.
如果1000没有足够大的数字你可以增加它并使其任意大.只需确保匹配第二个更新中的数字和数学.
| 归档时间: |
|
| 查看次数: |
2424 次 |
| 最近记录: |