История изменений
Исправление
stevejobs,
(текущая версия)
:
выставь максимальный уровень изоляции транзакций (snapshot/serializable/..) в твоей базе данных, и выполняй «проверка+добавление» внутри транзакции
внутри транзакции нужно использовать sql команду, которая позволяет делать атомарный compare-and-swap. Например, начиная с postgresql 9.5 это INSERT ... ON CONFLICT DO NOTHING/UPDATE
Исходная версия
stevejobs,
:
выставь максимальный уровень изоляции транзакций (snapshot/serializable/..) в твоей базе данных, и выполняй «проверка+добавление» внутри транзакции