Python DB API - commit() v. execute("commit transaction")?

Ian Kelly ian.g.kelly at gmail.com
Tue May 30 10:12:13 EDT 2017


On Tue, May 30, 2017 at 7:29 AM, Skip Montanaro
<skip.montanaro at gmail.com> wrote:
> Assuming the underlying database supports transactions, is there any
> difference between calling the commit() method on the connection and
> calling the execute method on the cursor with the "commit transaction"
> statement? It seems a bit asymmetric to me to start a transaction with
>
>   cur.execute("begin transaction")
>
> but end it with
>
>   conn.commit()

There's no difference I'm aware of in the implementations I've used,
but having a consistent API does allow for constructions such as:

try:
    do_stuff(conn)
except:
    conn.rollback()
finally:
    conn.commit()

without having to worry about variations in syntax between databases.



More information about the Python-list mailing list