我有一个表,某个列有一个活动的自动增量,但我做了一些测试,在测试过程中我创建了几个记录,并排除了其中的一些 . 我想为那些留下来的人生成新的数字,而不必删除...例如:他们是3条记录,一条代码为5,另一条代表16,另一条代表18,我希望第一个成为1,第二个和第三个3.当然新的按照顺序排列 .
改变ID通常是一个坏主意 . id的目的是识别表中的行,包括外键关系和随时间的变化 .
但是如果需要,您可以更改数字:
with toupdate as ( select t.*, row_number() over (order by id) as new_id from t ) update toupdate set id = new_id;
1 回答
改变ID通常是一个坏主意 . id的目的是识别表中的行,包括外键关系和随时间的变化 .
但是如果需要,您可以更改数字: