デフォルトでは、トランザクション DDL を有効にしない pysqlite を使用しています (DDL は sqlite3 クライアントからのトランザクションですが)。
pysqlite 内でトランザクション DDL を有効にするにはどうすればよいですか?
pysqlite は、小文字のクエリ文字列がオプションの空白と 'select'、'insert'、'update' 、'delete'、または 'replace' のいずれかで始まる場合を除き、常に暗黙的なコミットを実行します。これをオフにするエレガントな方法はありません。これを回避するには、pysqlite C ソース コードを編集します。