Junior — Middle
101
Wie implementiert man in SQLAlchemy eine Reihe von Schreiboperationen in der Datenbank, die in einer einzigen Transaktion ausgeführt werden?
Antwort von AI
sobes.tech KI
В SQLAlchemy для выполнения серии операций записи в одной транзакции обычно используют контекстный менеджер session.begin(). Все изменения внутри этого блока будут выполнены в рамках одной транзакции, и при возникновении исключения транзакция откатится.
Пример:
from sqlalchemy.orm import sessionmaker
Session = sessionmaker(bind=engine)
session = Session()
try:
with session.begin():
obj1 = MyModel(data='value1')
session.add(obj1)
obj2 = MyModel(data='value2')
session.add(obj2)
# Здесь транзакция автоматически коммитится
except Exception as e:
# При ошибке транзакция откатится
print(f"Ошибка: {e}")
Таким образом, все операции внутри with session.begin(): выполняются атомарно.