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


前言

作为一个超级菜鸟,在遇到这个问题时查阅的资料都让我感到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第一次的学习记录,希望不小心看到此篇的大佬能够指点迷津!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值