18

commitPythonでSQLite3データベースにデータを保存するには、接続オブジェクトのメソッドを呼び出す必要があることをどこかで読みました。それでも、私はこれを行う必要はありません。なんで?

4

5 に答える 5

4

おそらく自動コミットがオンになっています。デフォルトではhttp://www.sqlite.org/c3ref/get_autocommit.htmlです

于 2011-01-15T12:41:47.137 に答える
3

Python sqlite3 は、「INSERT」または「UPDATE」の前に BEGIN ステートメントを自動的に発行します。その後、他のコマンドまたは db.close() で自動的にコミットします

于 2013-04-12T09:34:15.280 に答える
3

また、接続オブジェクトは、トランザクションを自動的にコミットまたはロールバックするコンテキスト マネージャーとして使用できます。11.13.7.3. docs.pythonで

# Successful, con.commit() is called automatically afterwards
with con:
    con.execute("insert into person(firstname) values (?)", ("Joe",))
于 2011-01-15T12:47:44.197 に答える
3

接続に追加isolation_level=None( Ref )

db = sqlite.connect(":memory:", isolation_level=None)
于 2014-05-13T02:45:59.773 に答える