powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Баг или фишка?
3 сообщений из 3, страница 1 из 1
Баг или фишка?
    #39258604
azsx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
postgresql 9,5 версии есть insert с исключением, типа:

Код: sql
1.
2.
3.
INSERT INTO account (id, name, surname, address)
VALUES (DEFAULT, 'Вася', 'Пупкин', 'Москва, Кремль')
ON CONFLICT (name, surname, address) DO NOTHING;



если нарушается условие по уникальности - то ничего не делать. Всё хорошо, теперь можно добавлять записи одним запросом, но счетчик big serial при каждом новом инсерте добавляет 1. То есть сработало исключение, а счетчик id всё равно 1 добавил.
Как бы я не волнуюсь, 1. но убывает; 2. теперь я не могу прикинуть сколько у меня записей; 3. ваще неаккуратно, вдруг счетчик тоже на диск пишется - тогда +1 запись при каждом исключении.
Можно и надо ли что-то делать?
...
Рейтинг: 0 / 0
Баг или фишка?
    #39258607
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
azsxpostgresql 9,5 версии есть insert с исключением, типа:

Код: sql
1.
2.
3.
INSERT INTO account (id, name, surname, address)
VALUES (DEFAULT, 'Вася', 'Пупкин', 'Москва, Кремль')
ON CONFLICT (name, surname, address) DO NOTHING;



если нарушается условие по уникальности - то ничего не делать. Всё хорошо, теперь можно добавлять записи одним запросом, но счетчик big serial при каждом новом инсерте добавляет 1. То есть сработало исключение, а счетчик id всё равно 1 добавил.
Как бы я не волнуюсь, 1. но убывает; 2. теперь я не могу прикинуть сколько у меня записей; 3. ваще неаккуратно, вдруг счетчик тоже на диск пишется - тогда +1 запись при каждом исключении.
Можно и надо ли что-то делать?

Это архитектурное ограничение реализации ON CONFLICT.
Bigserial вам хватит надолго так что особо волноваться смысла нет.
Если очень мешает - сделать тоже самое но без ON CONFLICT через BEFORE INSERT триггер (он по логике не должен sequence сьедать на пропущенных update).

--
Maxim Boguk
www.postgresql-consulting.ru
...
Рейтинг: 0 / 0
Баг или фишка?
    #39258613
azsx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Maxim Boguk, спасибо, значит решено. В топик не понял как на Решено: *** заголовок изменить.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Баг или фишка?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]