|
|
|
Многопоточность и ERROR: duplicate key value violates unique constraint
|
|||
|---|---|---|---|
|
#18+
Всем привет. Довольно-таки давно в проект закралась проблема. Несколько потоков(20) импортируют данные(1000+ объектов) и в случае если объект существует в базе обновляет, если нет - создаёт. Но иногда выдаёт ошибку SQL Error: 0, SQLState: 23505 ERROR JDBCExceptionReporter:234 - ERROR: duplicate key value violates unique constraint "some_key" Главная проблема, что это происходит иногда и на абсолютно случайных объектах, без какой либо закономерности. Нашел некоторые упоминания на англоязычных форумах, но там темы так и остались без ответа. Предпологаю, что проблема именно в многопоточности. Кто-нибудь сталкивался с чем-нибудь похожим? Версия Postgres 9.1. Заранее благодарю! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2015, 17:37 |
|
||
|
Многопоточность и ERROR: duplicate key value violates unique constraint
|
|||
|---|---|---|---|
|
#18+
lemur489, поскольку в постресе нет мерджа, предположу, что используются два оператора в реад-комиттед. типичная ошибка разработчиков, далеких от понимания транзакционной модели работы с данными. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2015, 17:59 |
|
||
|
Многопоточность и ERROR: duplicate key value violates unique constraint
|
|||
|---|---|---|---|
|
#18+
lemur489, Код: plaintext 1. 2. 3. 4. 5. Тут хорошо расписано. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2015, 18:01 |
|
||
|
Многопоточность и ERROR: duplicate key value violates unique constraint
|
|||
|---|---|---|---|
|
#18+
Вот только непонятно почему они с таким маниакальным упорством делают UPDATE первым запросом. Всё же проще: попытались сделать INSERT - обломились по нарушению уникальности - сделали UPDATE. Профит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2015, 14:07 |
|
||
|
Многопоточность и ERROR: duplicate key value violates unique constraint
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovВот только непонятно почему они с таким маниакальным упорством делают UPDATE первым запросом. Всё же проще: попытались сделать INSERT - обломились по нарушению уникальности - сделали UPDATE. Профит. а если не обломились - апдейтить потом то что инсертнули? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2015, 14:16 |
|
||
|
|

start [/forum/topic.php?fid=53&fpage=112&tid=1998056]: |
0ms |
get settings: |
9ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
59ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
33ms |
get tp. blocked users: |
1ms |
| others: | 218ms |
| total: | 359ms |

| 0 / 0 |
