Предположим, у меня есть модифицирующий оператор:
cursor = conn.cursor()
# some code
affected_rows1 = cursor.execute(update_statement1, params1)
# some code
conn.commit()
cursor.close()
Должен ли я обернуть блок кода с помощью try ... except
и явно отменить транзакцию, когда возникает исключение, и какие исключения MySQLdb я должен уловить для отката? Я использовал для улавливания любых StandardError
в этом случае, но теперь я сомневаюсь, что блоку кода даже потребуется явно откат.
Следующий пример немного сложнее, и я понимаю, что для него требуется явный откат, если первый оператор обновления преуспел. Тем не менее, какие исключения я должен уловить в этом случае:
cursor = conn.cursor()
# some code
affected_rows1 = cursor.execute(update_statement1, params1)
# some code
affected_rows2 = cursor.execute(update_statement2, params2)
#some code
conn.commit()
cursor.close()