您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

python – sqlalchemy数据库表已被锁定

5b51 2022/1/14 8:21:25 python 字数 3095 阅读 473 来源 www.jb51.cc/python

我试图从sqlalchemy的sqlite db中选择所有记录,遍历每个记录并对其进行更新.我这样做是因为我需要在我的名字栏中重新格式化记录.这是我用来做一个简单测试的代码: def loadDb(name): sqlite3.connect(name) engine = create_engine('s

概述

我试图从sqlalchemy的sqlite db中选择所有记录,遍历每个记录并对其进行更新.我这样做是因为我需要在我的名字栏中重新格式化记录.

这是我用来做一个简单测试的代码

   def loadDb(name):    

        sqlite3.connect(name)    
        engine = create_engine('sqlite:///'+dbPath(),echo=False)      
        Metadata = MetaData(bind=engine)

        return Metadata

    db = database("dealers.db")
    Metadata = db.loadDb()
    dealers = Table('dealers',Metadata,autoload=True)

    dealer = dealers.select().order_by(asc(dealers.c.id)).execute()

    for d in dealer:
        u = dealers.update(dealers.c.id==d.id)
        u.execute(name="hi")

        break

我收到错误

sqlalchemy.exc.OperationalError: (OperationalError) database table is locked u'UPDATE dealers SET name=? WHERE dealers.id = ?' ('hi',1)

我对sqlalchemy很新,我不确定这个错误是什么意思或者如何修复它.这似乎应该是一个非常简单的任务,所以我知道我做错了什么.

dealer = list(dealers.select().order_by(asc(dealers.c.id)).execute())

一个选择是制作一个稍微复杂的sql语句,以便循环在数据库内而不是在Python中执行.这肯定会给你带来很大的性能提升.

总结

以上是编程之家为你收集整理的python – sqlalchemy数据库表已被锁定全部内容,希望文章能够帮你解决python – sqlalchemy数据库表已被锁定所遇到的程序开发问题。


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶