Задать вопрос
YardalGedal
@YardalGedal
yeah boy

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

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

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

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

Похожие вопросы