Using Transactions in Python Programs

Problem

You want to perform a transaction in a DB-API script.

Solution

Use the standard DB-API transaction support mechanism.

Discussion

The Python DB-API abstraction provides transaction processing control through connection object methods. The DB-API specification indicates that database connections should begin with auto-commit mode disabled. Therefore, when you open a connection to the database server, MySQLdb disables auto-commit mode, which implicitly begins a transaction. End each transaction with either commit() or rollback(). The commit() call occurs within a try statement, and the rollback() occurs within the except clause to cancel the transaction if an error occurs:

try:
  cursor = conn.cursor ()
  # move some money from one person to the other
  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:  # empty exception handler in case rollback fails
    conn.rollback ()
  except:
    pass
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.15.137.59