DB-API se pokouší zpracovat transakce samo o sobě, zahájí transakci prvním příkazem a má své vlastní volání API, které ji potvrdí, takže:
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()
Podle mého názoru se jedná o vážnou, do očí bijící chybu návrhu pythonského DB-API, takže je vážný problém spouštět příkazy mimo transakce a mít řádnou kontrolu nad transakcemi, např. používat věci jako BEGIN EXCLUSIVE TRANSACTION
od SQLite . Je to, jako by někdo bez skutečných zkušeností s databází mohl navrhnout API...