Как избежать условий гонки при использовании метода find_или_create класса DBIx::Class::ResultSet?

Из документации поfind_or_create:

Примечание:Поскольку find_или_create()читает из базы данных, а затем возможно вставки на основе результата, этот метод подвержен гонке состояние. Другой процесс мог создать запись в таблице после поиск завершен и до начала создания. Избегать этой проблемы используйте find_или_create()внутри транзакции.

Достаточно ли просто использовать find_or_create()внутри транзакции в PostgreSQL?

5
задан Eugene Yarmash 21 April 2012 в 23:44
поделиться