LINUX.ORG.RU

Постгрис: ON CONFLICT sequence обновляется

 


0

3

Здравия вам, форумчане.

Юзаю постгрис. Столкнулся с проблемой, дело в том, что при вставке записи в таблицу бд присваивает записи ID, который содержит какой-то номер N из последовательности и увеличивает значение последней на 1. Однако, если при вставке инсерт вдруг случится ON CONFLICT, то инсерт не вставится (по понятным причинам), но последовательность все так же будет увеличена. Соответственно, таким образом будут появляться дырки в айдишниках, что крайне не классно.

Что делать, братцы?

Ничего не делать. При откате транзакции например тоже sequence не откручивается назад.

maxcom ★★★★★
()

будут появляться дырки в айдишниках, что крайне не классно

Это чем же? Если для твоей задачи крайне важно иметь непрерывную последовательность, то лучше под это отдельное поле завести. Айдишник — он для системных нужд.

Wizard_ ★★★★★
()

что крайне не классно.

Почему?

AnDoR ★★★★★
()

Заведи отдельное поле под ID и контролируй его непрерывность.

Dark_SavanT ★★★★★
()

Если нужны номера, проставляй их во время селекта функцией row_number

deadNightTiger ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.