YardalGedal
@YardalGedal
yeah boy

В чём отличие атомарной операции от транзакции?

В замечательной ORM peewee (python), есть менеджер контекста db.atomic() и рядом с ним db.transaction(). Я понимаю, что атомарность - это всего лишь одно из свойств транзакции, гарантирующее, что данные будут записаны целиком и никогда не частично.
Суть моей задачи - записать определенные данные в две таблицы Postgresql (либо BULK_INSERT + BULK_INSERT, либо BULK_UPDATE + BULK_INSERT) так, чтобы изменения произошли либо в двух таблицах, либо ни в одной. Я бы не задумываясь использовал транзакции, если бы не знал, что есть отдельно менеджер для атомарных операций. Может быть он -- именно то, что мне нужно?

p.s.
тригеры нихачу
  • Вопрос задан
  • 971 просмотр
Пригласить эксперта
Ответы на вопрос 1
POS_troi
@POS_troi
СадоМазо Админ, флудер, троль.
Если я правильно помню про peewee, то эти две функции делают одно и тоже но предоставляя различные варианты управления транзакцией, атомик автоматичен а транзакшн даёт возможность управления коммитом/откатом и обработка ошибок.
Для записи в несколько таблиц можно использовать вложенные транзакции но тут я уже вообще не помню как там реализованно.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы