mysql-pythonでのカーソルの操作は、「BEGIN;」、「COMMIT;」、および「ROLLBACK;」と呼んでいました。明示的に次のように:
try:
cursor.execute("BEGIN;")
# some statements
cursor.execute("COMMIT;")
except:
cursor.execute("ROLLBACK;")
次に、基になる接続オブジェクトに対応するメソッドがあることがわかりました。
try:
cursor.connection.begin()
# some statements
cursor.connection.commit()
except:
cursor.connection.rollback()
DB-API PEPを調べたところ、拡張機能であっても、接続オブジェクトのbegin()メソッドについては言及されていないことがわかりました。
ちなみに、Mysql-pythonは、メソッドを使用するとDeprecationWarningをスローします。たとえば、sqlite3.connectionにはメソッドがまったくありません。
そして問題は、なぜPEPにそのような方法がないのかということです。ステートメントはどういうわけかオプションですか、代わりにcommit()を呼び出すだけで十分ですか?