Python中文
首页
教程
问答
标签
搜索
登录
注册
Python/SQLite3:无法提交-没有事务是acti
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我试图使用Python(传统的,2.7)和SQLite(3)来编写<a href="http://pastebin.com/YeBgbBAV" rel="nofollow noreferrer">book indexer</a>。</p> <p>代码可以归结为以下SQL语句序列:</p> <pre><code>'select count(*) from tag_dict' () /* [(30,)] */ 'select count(*) from file_meta' () /* [(63613,)] */ 'begin transaction' () 'select id from archive where name=?' ('158326-158457.zip',) /* [(20,)] */ 'select id from file where name=? and archive=?' ('158328.fb2', 20) /* [(122707,)] */ 'delete from file_meta where file=?' (122707,) 'commit transaction' () # error: cannot commit - no transaction is active </code></pre> <p>隔离级别是'DEFERRED'('EXCLUSIVE'没有更好的选择)。</p> <p>我试图使用connection.commit()而不是cursor.execute('commit')-没有发生任何有用的事情。</p> <ul> <li>当然,我已经搜索过stackoverflow和Net,但是找到的答案是不相关的。</li> <li>由于性能原因,自动提交模式不可接受。</li> <li>我一次使用唯一的数据库文件。</li> <li>我的代码是单线程运行的。</li> <li>所有的SQL执行都是通过一个函数完成的,这个函数确保我一次只打开一个游标。</li> </ul> <h2>那么,这里的交易怎么了?</h2> <p>如果我使用connection.commit()(注意:没有connection.begin方法!),那么我只是丢失了数据。</p> <p>当然,我已经对数据库文件及其目录的文件权限进行了double/triple/d检查。</p> <hr/> <p>好吧,我经常在提出问题后一分钟就找到了解决办法。</p> <p>作为一个新手,我有8个小时不能回答自己的问题。。。 所以,答案就在这里:</p> <p>解决方案是<a href="http://www.velocityreviews.com/forums/t326247-pysql-lite-transactions-question.html" rel="nofollow noreferrer">found here</a>,由唯一的想法组成:</p> <h2>不要在Python应用程序的非自动提交模式下使用BEGIN/COMMIT-仅使用db.COMMIT()和db.rollback()!</h2> <p>这听起来很奇怪,但确实有效。</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<pre><code>cursor=connection.cursor() cursor.executemany("insert into person(firstname, lastname) values (?, ?)", persons) connection.commit() </code></pre>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
我是否正确构建了这个递归神经网络
3 回答
我是否正确理解acquire和realease是如何在python库“线程化”中工作的
6 回答
我是否正确理解Keras中的批次大小?
7 回答
我是否正确理解PyTorch的加法和乘法?
3 回答
我是否正确组织了我的Django应用程序?
3 回答
我是否正确计算执行时间?如果是这样,那么并行处理将花费更长的时间。这看起来很奇怪
9 回答
我是否每次创建新项目时都必须在PyCharm中安装numpy?(安装而不是导入)
10 回答
我是否每次运行jupyter笔记本时都必须重新启动内核?
9 回答
我是否用python安装了socks模块?
8 回答
我是否真的需要知道超过一种语言,如果我想要制作网页应用程序?
6 回答
我是否缺少spaCy柠檬化中的预处理功能?
3 回答
我是否缺少给定状态下操作的检查?
7 回答
我是否能够使用函数“count()”来查找密码中大写字母的数量((Python)
4 回答
我是否能够使用用户输入作为colorama模块中的颜色?
2 回答
我是否能够创建一个能够添加新Django.contrib.auth公司没有登录到管理面板的用户?
1 回答
我是否能够将来自多个不同网站的数据合并到一个csv文件中?
9 回答
我是否能够将目录路径转换为可以输入python hdf5数据表的内容?
7 回答
我是否能够等到一个对象被销毁,直到它创建另一个对象,然后在循环中运行time.sleep()
1 回答
我是否能够通过CBV创建用户实例,而不是首先创建表单?(Django)
7 回答
我是否要使它成为递归函数?
9 回答