Сброс столбца идентификаторов с последним значением идентификатора таблицы в postgres - PullRequest
0 голосов
/ 13 апреля 2019

Я хотел бы изменить свой существующий столбец на «Автоматическая идентификация» в базе данных Postgres.
Я использовал приведенный ниже скрипт, чтобы установить столбец автоматической идентификации и установить начало по умолчанию с 1.
Но здесь я хотел бы сбросить значение столбца идентификации до последнего значения таблицы.
Дайте мне знать, если у вас есть какие-либо решения.

ALTER TABLE patient 
    ALTER patientid SET NOT NULL,
    ALTER patientid ADD GENERATED ALWAYS AS IDENTITY (START WITH 1);

Здесь я настраиваю что-то вроде этого:

 ALTER TABLE Patient 
   ALTER COLUMN PatientId RESTART WITH (select Max(patientId) + 1 from patient);

1 Ответ

1 голос
/ 13 апреля 2019

Столбцы идентификаторов также поддерживаются последовательностью, и pg_get_serial_sequence() возвращает это имя последовательности.Это можно использовать вместе с setval().

. После выполнения части add generated always вы можете настроить последовательность, используя следующую инструкцию:

select setval(pg_get_serial_sequence('patient', 'patientid', 
                                      (select max(patientid) from patient));
...