Встречается на собеседованиях • сегодня

Как в SQLAlchemy выполнить несколько операций записи в рамках одной транзакции

В SQLAlchemy для выполнения нескольких операций в одной транзакции можно использовать контекстный менеджер session.begin() или метод session.commit(). Если возникнет ошибка, транзакция автоматически откатится.

Пример:

python
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker

engine = create_engine('sqlite:///example.db')
Session = sessionmaker(bind=engine)
session = Session()

try:
# Начало транзакции
session.begin()

text
# Несколько операций
session.add(User(name='Alice'))
session.add(User(name='Bob'))

# Фиксация изменений
session.commit()

except:
# В случае ошибки - откат
session.rollback()
raise
finally:
session.close()

text

Или более короткий вариант с контекстным менеджером:
```python
with session.begin():
    session.add(User(name='Alice'))
    session.add(User(name='Bob'))
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы