powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Многопоточность и ERROR: duplicate key value violates unique constraint
6 сообщений из 6, страница 1 из 1
Многопоточность и ERROR: duplicate key value violates unique constraint
    #38929637
lemur489
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет.

Довольно-таки давно в проект закралась проблема.
Несколько потоков(20) импортируют данные(1000+ объектов) и в случае если объект существует в базе обновляет, если нет - создаёт.
Но иногда выдаёт ошибку
SQL Error: 0, SQLState: 23505
ERROR JDBCExceptionReporter:234 - ERROR: duplicate key value violates unique constraint "some_key"

Главная проблема, что это происходит иногда и на абсолютно случайных объектах, без какой либо закономерности.

Нашел некоторые упоминания на англоязычных форумах, но там темы так и остались без ответа.
Предпологаю, что проблема именно в многопоточности.
Кто-нибудь сталкивался с чем-нибудь похожим?
Версия Postgres 9.1.

Заранее благодарю!
...
Рейтинг: 0 / 0
Многопоточность и ERROR: duplicate key value violates unique constraint
    #38929671
p2.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lemur489,

поскольку в постресе нет мерджа, предположу, что используются два оператора в реад-комиттед.
типичная ошибка разработчиков, далеких от понимания транзакционной модели работы с данными.
...
Рейтинг: 0 / 0
Многопоточность и ERROR: duplicate key value violates unique constraint
    #38929675
Фотография vyegorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lemur489,

Код: plaintext
1.
2.
3.
4.
5.
Поток 1: Есть ли объект 100? — “нет”
Поток 1: <приступил к созданию>
Поток 2: Есть ли объект 100? — “нет” (пока нет)
Поток 2: <приступил к созданию>
Поток 1: COMMIT; — все хорошо, создали объект 100
Поток 2: COMMIT; — ERROR: duplicate key value violates unique constraint "some_key"

Тут хорошо расписано.
...
Рейтинг: 0 / 0
Многопоточность и ERROR: duplicate key value violates unique constraint
    #38930497
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот только непонятно почему они с таким маниакальным упорством делают UPDATE первым запросом. Всё же проще: попытались сделать INSERT - обломились по нарушению уникальности - сделали UPDATE. Профит.
...
Рейтинг: 0 / 0
Многопоточность и ERROR: duplicate key value violates unique constraint
    #38930522
Ivan Durak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovВот только непонятно почему они с таким маниакальным упорством делают UPDATE первым запросом. Всё же проще: попытались сделать INSERT - обломились по нарушению уникальности - сделали UPDATE. Профит.
а если не обломились - апдейтить потом то что инсертнули?
...
Рейтинг: 0 / 0
Многопоточность и ERROR: duplicate key value violates unique constraint
    #38931883
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ivan Durakа если не обломились - апдейтить потом то что инсертнули?
Зачем его апдейтить?
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Многопоточность и ERROR: duplicate key value violates unique constraint
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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