DB-API се опитва да обработва транзакции самостоятелно, като стартира транзакция с първата команда и има свое собствено извикване на API, за да я извърши, така че:
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()
Според мен това е сериозна, крещяща грешка в дизайна на DB-API на Python, което прави сериозна главоболие да се изпълняват команди извън транзакциите и да има правилен контрол върху транзакциите, напр. да използвате неща като BEGIN EXCLUSIVE TRANSACTION
на SQLite . Сякаш някой без реален опит в базата данни е получил разрешение да проектира API...