मान लीजिए रोलबैक करने के लिए, मैं एक बदलाव बयान है:अजगर-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()
मैं का उपयोग भी 'StandardError', और अब समझने के लिए सुनिश्चित करने के लिए सही है कोशिश कर रहा हूँ:
इस तरह आप आदर्श रूप में यह करना होगा है। – newtover