DB-API próbuje samodzielnie obsługiwać transakcje, rozpoczynając transakcję przy pierwszym poleceniu i mając własne wywołanie API do jej zatwierdzenia, więc:
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()
Moim zdaniem jest to poważny, rażący błąd projektowy Pythona DB-API, który sprawia, że wykonywanie poleceń poza transakcjami i posiadanie odpowiedniej kontroli nad transakcjami, np. używać rzeczy takich jak BEGIN EXCLUSIVE TRANSACTION
SQLite . To tak, jakby ktoś bez prawdziwego doświadczenia w zakresie baz danych mógł zaprojektować API...