Использование транзакций в программах на Python
Задача
Вы хотите использовать транзакцию в сценарии DB-API.
Решение
Используйте стандартный механизм поддержки транзакций DB-API.
Обсуждение
В DB-API имеется абстракция, обеспечивающая контроль обработки транзакций за счет методов объектов соединений с базой данных. Вызовите begin() для начала транзакции и commit() или rollback() для ее завершения.
Вызовы begin() и commit() помещены в блок try, а rollback() – в соответствующий блок except для отмены транзакции в случае возникновения ошибки:
try:
conn.begin ()
cursor = conn.cursor ()
# передать деньги от одного человека другому
cursor.execute ("UPDATE money SET amt = amt - 6 WHERE name = 'Eve'")
cursor.execute ("UPDATE money SET amt = amt + 6 WHERE name = 'Ida'")
cursor.close ()
conn.commit()
except MySQLdb.Error, e:
print "Transaction failed, rolling back. Error was:"
print e.args
try: # пустой обработчик исключения, если откат не удался
conn.rollback ()
except:
pass
Комментарии:
Нету комментариев для вывода...