PostgreSQL серийный конфликт после восстановления - PullRequest
0 голосов
/ 13 февраля 2020

Мне нужно экспортировать свою базу данных, которая имеет вид:

users(
id serial primary key,
name text,
surname text
)

object(
objectID integer primary key,
....
)


edits(
userID integer references (user.id),
objectID integer references (object.objectID),
...
)

Однако, когда я экспортирую свою базу данных с помощью pg_dump, она выглядит так:

insert into users(1,'Paul','Swanson');
insert into users(4,'Bob','Vincent');

Postgres SQL не использует последовательность за последовательным столбцом и не обновляет последовательность после каждой вставки.

Так что вопрос ... возможно ли, что исправление столбца с последовательным типом данных (на самом деле целочисленные данные типа) будут проблемы позже? Я имею в виду, если я сделаю:

insert into users('Mindy', 'Blue');

Возможно ли, что postgresSQL предложит и ID, который уже используется? Возможно, он предложит первый идентификатор 1. Я подозреваю, что это должно быть возможно, потому что в резервной копии базы данных идентификатор пользователя является фиксированным, и поэтому я подозреваю, что последовательность за последовательным идентификатором столбца не обновляется.

1 Ответ

0 голосов
/ 13 февраля 2020

Как говорит @a_horse_with_no_name, в конце файла есть setval (...), который обновляет последовательность с максимальным ID, вставленным в таблицу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...