• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

sqlite3 database is locked误打误撞解决 学习记录

武飞扬头像
cpnNPC
帮助1


前言

作为一个超级菜鸟,在遇到这个问题时查阅的资料都让我感到n脸懵逼啊,不知道有没有童鞋有跟我一样的困惑,我知道我的问题应该跟大佬们遇到的不太一样,所以我用一个超简单的办法就搞定了(应该只适用小部分情况吧)


一、遇到问题的过程

一个函数如下用于向数据库添加数据,数据内容不重要,代码如下:

def data_create(file):
    conn = sqlite3.connect(file)
    cur = conn.cursor()
    k = 1
    for i in range(k):
        s = (random.randint(0, 1),random.randint(0, 1),random.randint(0, 1),
             random.randint(0, 1),random.randint(0, 1),random.randint(0, 1),
             random.randint(0, 1),random.randint(0, 1))
        cur.execute("insert into seats(occupation) values('%s,%s,%s,%s,%s,%s,%s,%s')"%s)
    conn.commit()
    seat = cur.fetchall()
    cur.close()
    conn.close()
    return seat

输出结果正常
在这里插入图片显示效果
学新通

然后我继续运行一次

还是可以正常运行
学新通

因为尝试了十几次我发现k=1运行都没有问题,此时我决定让k = 100

然后我发现无论让k=多少都可以运行且不会报错,此时我拥有了好多数据
学新通

然后我看第539条数据0太多了不太爽
直接在DB Browser内修改了一下

很顺畅学新通

然后我继续用自动添加数据,k值没有改变

运行发现控制台中等待的时间变长了,而且这次没有成功
学新通

我本以为是k值过大,后来发现k = 1还是会出现一模一样的错误,由此陷入了疯狂查找解决方案,结果面对堆栈…一头雾水
(真没学过

二、解决方案

1.关闭DB Browser

这是我在查找了一堆又一堆我看不懂的方法后尝试的无奈之举
结果真的可以…太离谱了

2.查到的资料

here

总结

感觉遇到了很离谱的事情,将其作为我在csdn第一次的学习记录,希望不小心看到此篇的大佬能够指点迷津!

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhgakbkk
系列文章
更多 icon
同类精品
更多 icon
继续加载