DB-API probeert transacties zelf af te handelen, een transactie te starten bij de eerste opdracht en een eigen API-aanroep te hebben om deze vast te leggen, dus:
cursor.execute( "CREATE TABLE t1 ( t1_id INT PRIMARY KEY AUTO_INCREMENT )" )
cursor.commit()
cursor.execute( "CREATE TABLE t2 ( t2_id INT PRIMARY KEY AUTO_INCREMENT )" )
cursor.commit()
Naar mijn mening is dit een ernstige, flagrante ontwerpfout van Python's DB-API, waardoor het een serieus gedoe is om commando's uit te voeren buiten transacties om en om de juiste controle over transacties te hebben, bijv. om dingen te gebruiken zoals SQLite's BEGIN EXCLUSIVE TRANSACTION
. Het is alsof iemand zonder echte database-ervaring de API mocht ontwerpen...