首页 文章

重置列自动递增

提问于
浏览
0

我有一个表,某个列有一个活动的自动增量,但我做了一些测试,在测试过程中我创建了几个记录,并排除了其中的一些 . 我想为那些留下来的人生成新的数字,而不必删除...例如:他们是3条记录,一条代码为5,另一条代表16,另一条代表18,我希望第一个成为1,第二个和第三个3.当然新的按照顺序排列 .

1 回答

  • 0

    改变ID通常是一个坏主意 . id的目的是识别表中的行,包括外键关系和随时间的变化 .

    但是如果需要,您可以更改数字:

    with toupdate as (
          select t.*, row_number() over (order by id) as new_id
          from t
         )
    update toupdate
        set id = new_id;
    

相关问题