[Tutor] sqlite3 COMMIT directive
Tim Golden
mail at timgolden.me.uk
Tue Oct 1 13:05:55 CEST 2013
On 01/10/2013 11:41, Tim Golden wrote:
> You're sort-of correct. What happens is that the database doesn't enter
> autocommit mode (you'll still need to specify the right isolation level
> on the .connect for that). Rather, the __exit__ method of the
> connection-as-context-manager issues the db.commit() call which will
> commit anything outstanding.
Re-reading, we may be using the term "autocommit" in two different ways.
I'm using it to refer to a database-internal option where each SQL
operation is committed as soon as it completes. This mode of operation
is initiated (from Python) by passing an isolation_level of "None" when
creating the connection.
The "with sqlite3.connect..." approach could be considered a
Python-level autocommit where all the operations within the block are
committed by virtue of the Python context-manager mechanism which
invokes the usual database "COMMIT" operation on exit.
In case it helps...
TJG
More information about the Tutor
mailing list