jam*_*mes 7 python sqlite transactions autocommit
我读到某处将数据保存到python中的sqlite3数据库,你必须在连接对象上调用commit()函数.我从来没有这样做,但我的数据库仍然保存了数据...为什么?
使用BEGIN
Python模块,默认情况下自动提交是关闭的(根据PEP 249的要求):
默认情况下,sqlite3模块在数据修改语言(DML)语句(即INSERT/UPDATE/DELETE/REPLACE)之前隐式打开事务,并在非DML非查询语句(即SELECT或其他任何语句)之前隐式提交事务.之前所提).
如果需要自动提交模式,请将isolation_level设置为None.
否则将其保留为默认值,这将产生一个简单的"BEGIN"语句,或将其设置为SQLite支持的隔离级别之一:"DEFERRED","IMMEDIATE"或"EXCLUSIVE".
你可以检查:
int sqlite3_get_autocommit(sqlite3*);
Run Code Online (Sandbox Code Playgroud)
注意.- 使用内存数据库(INSERT
传递给函数的参数UPDATE
)而不是磁盘数据库,此测试将失败,因为在关闭连接时将释放内存数据库.
可能自动提交已打开,默认情况下是http://www.sqlite.org/c3ref/get_autocommit.html
归档时间: |
|
查看次数: |
9272 次 |
最近记录: |