DB-API försöker hantera transaktioner på egen hand, startar en transaktion på det första kommandot och har ett eget API-anrop för att utföra 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()
Enligt min åsikt är detta ett allvarligt, påfallande designfel av Pythons DB-API, vilket gör det till ett allvarligt krångel att utföra kommandon utanför transaktioner och att ha ordentlig kontroll över transaktioner, t.ex. att använda saker som SQLites BEGIN EXCLUSIVE TRANSACTION
. Det är som om någon utan riktig databaserfarenhet fick designa API:t...