5
我想从sqlalchemy的sqlite数据库中选择所有记录,循环遍历每个记录并对它进行更新。我这样做是因为我需要重新格式化记录在我的名字列中。sqlalchemy数据库表被锁定
这里是我使用做一个简单的测试代码:
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的,我不确定这个错误意味着什么或如何解决它。这似乎应该是一个非常简单的任务,所以我知道我做错了什么。
方案一不会奏效......对方案二有更多的建议吗?基本上我只是试图从我的数据库的列中删除所有非ASCII字符。 – imns 2010-08-30 03:11:25
回复:“选项一不工作”您无法从选定的数据库对象中创建一个列表?为什么不? – hughdbrown 2010-09-23 16:08:48
所以我知道这对派对来说太晚了,但是如果将来有人遇到这个问题,我发现关闭所有打开数据库的开放式控制台会清除这个问题。 – ExperimentsWithCode 2016-08-14 02:33:38