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()
私の意見では、これはPythonのDB-APIの深刻で明白な設計エラーであり、トランザクションの外部でコマンドを実行したり、トランザクションを適切に制御したりするのは非常に面倒です。 SQLiteのBEGIN EXCLUSIVE TRANSACTION
のようなものを使用するには 。まるで、実際のデータベースの経験がない人がAPIを設計することを許可されたかのようです...