Python-mysql:когда явно откатывать транзакцию

Предположим, у меня есть оператор модификации:

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()
13
задан newtover 21 March 2012 в 09:51
поделиться