SQLite数据库被锁定

3

请问如何解决这个问题?

代码:

c.execute("INSERT INTO INPUT33 (NAME) VALUES (?);", (name3,))      
c.execute("select MAX(rowid) from [input33];")
conn.commit()      
for rowid in cursor:break         
for elem in rowid:
    m = elem    
    print(m)
    c.execute("select MAX(rowid) from [input];")                    
    for rowid in c:break
    for elem in rowid:                            
    m = elem   
    c.execute("DELETE FROM input WHERE rowid = ?", (m,))
    conn.commit()

运行后,我得到了这个结果:
sqlite3.OperationalError: database is locked

为什么要有两个不同的光标,cursorc - Joachim Isaksson
1个回答

2

来自Python文档

当多个连接访问数据库时,如果其中一个进程修改了数据库,SQLite数据库将被锁定,直到该事务提交。timeout参数指定连接应等待锁定消失的时间,直到引发异常。timeout参数的默认值为5.0(五秒)


有没有办法缩短5秒或更好的解决方案? - user3346746

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接