Сброс автоинкремента столбца - PullRequest
0 голосов
/ 10 декабря 2018

У меня есть таблица, в которой определенный столбец имеет активное автоинкремент, но я провел несколько тестов и во время теста создал несколько записей и исключил некоторые из них.Я хотел бы генерировать новые номера для тех, кто остался, без необходимости удалять ... Например: это были 3 записи, одна с кодом 5, другая с 16 и другая с 18. Я хотел, чтобы первый был 1,вторые 2 и третьи 3. Конечно, новые следуют последовательности.

1 Ответ

0 голосов
/ 10 декабря 2018

Смена идентификаторов - вообще плохая идея.Назначение идентификатора - идентифицировать строки в таблице как для отношений внешнего ключа, так и для времени.

Но вы можете изменить числа, если вам необходимо:

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