【问题标题】:Is it a good practice to enable auto-commit in sqlite python all the time? [closed]一直在 sqlite python 中启用自动提交是一个好习惯吗? [关闭]
【发布时间】:2018-09-14 14:13:55
【问题描述】:

在 sqlite python 中,如果未启用自动提交,则必须运行 commit() 以确保执行 SQL 语句。通过执行类似sqlite3.connect('sqlitedb.db', isolation_level=None) 的操作来启用自动提交

始终启用自动提交是一个好习惯吗?这是为了避免忘记运行commit() 时可能发生的错误。

在哪些情况下(如果有)最好禁用自动提交?

我正在使用 sqlite3 和 python v3.6

【问题讨论】:

  • 请问为什么投反对票?这个问题有什么问题?很高兴知道这样我以后可以改进提问。
  • 一般情况下,在事务相关的环境中,您不应该启用自动提交,因为它会导致数据不一致。
  • 那么,为了数据的一致性,最好一直禁用自动提交?为什么自动提交会导致数据不一致?
  • 我的错应该是原子性。快速阅读stackoverflow.com/questions/12664837/…

标签: python python-3.x sqlite


【解决方案1】:

如果多个操作在逻辑上属于一起,则应禁用自动提交,以确保不仅执行其中一些操作(原子性)。

此外,如果出于性能原因在短时间内连续执行多项操作,则应禁用它。

对于从不同线程/进程并发访问的数据库,需要考虑额外的一致性注意事项,但这种用法不太可能用于 Sqlite。

【讨论】:

    猜你喜欢
    • 2018-12-17
    • 2020-08-25
    • 2023-01-06
    • 2015-08-03
    • 1970-01-01
    • 2019-11-07
    • 1970-01-01
    • 2013-03-30
    • 1970-01-01
    相关资源
    最近更新 更多