Ben sqlalchemy sahip bir sqlite db gelen tüm kayıtları seçmeye çalışıyorum, her biri üzerinde döngü ve üzerinde bir güncelleme yapın. Bunu yapıyorum çünkü adım sütunumda yeniden kayıt yapmam gerekiyor.sqlalchemy veritabanı tablosu kilitlendi
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
Şu hatayı alıyorum: Burada
Ben basit bir test yapmak kullanıyorum kodudursqlalchemy.exc.OperationalError: (OperationalError) database table is locked u'UPDATE dealers SET name=? WHERE dealers.id = ?' ('hi', 1)
Ben sqlalchemy çok yeniyim ben değilim Bu hatanın ne anlama geldiğini veya nasıl düzeltileceğini kesin. Bu gerçekten basit bir görev olmalı gibi görünüyor, bu yüzden yanlış bir şey yapıyorum biliyorum.
Seçenek bir işe yaramaz ... seçenek 2 ile daha fazla öneri? Temel olarak, sadece non-ascii karakterleri db'lerimin sütunlarından birinden kaldırmaya çalışıyorum. – imns
Re: "Seçenek işe yaramaz" Seçili veritabanı nesnelerinden bir liste oluşturamazsınız? Neden olmasın? – hughdbrown
Bu yüzden partiye bu kadar geç olduğunu biliyorum, ancak gelecekte insanlar buna koşarsa, db'ye erişen tüm açık konsolları kapatmayı bu sorunu çözdüm. – ExperimentsWithCode