DB-API versucht, Transaktionen selbst zu handhaben, startet eine Transaktion beim ersten Befehl und hat einen eigenen API-Aufruf, um sie festzuschreiben, also:
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()
Meiner Meinung nach ist dies ein schwerwiegender, eklatanter Designfehler von Pythons DB-API, der es zu einem ernsthaften Problem macht, Befehle außerhalb von Transaktionen auszuführen und die richtige Kontrolle über Transaktionen zu haben, z. Dinge wie BEGIN EXCLUSIVE TRANSACTION
von SQLite zu verwenden . Es ist, als ob jemand ohne wirkliche Datenbankerfahrung die API entwerfen dürfte...