DB-API forsøger at håndtere transaktioner på egen hånd, starter en transaktion på den første kommando og har sit eget API-kald til at udføre den, så:
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()
Efter min mening er dette en alvorlig, åbenlys designfejl i Pythons DB-API, hvilket gør det til et alvorligt besvær at udføre kommandoer uden for transaktioner og at have ordentlig kontrol over transaktioner, f.eks. at bruge ting som SQLites BEGIN EXCLUSIVE TRANSACTION
. Det er som om en person uden reel databaseerfaring fik lov til at designe API'et...