2014-11-26 25 views
51

'da bir kayıt nasıl silinir MySql veritabanımda users tablosum var. Bu tablo id, name ve age alanlarındadır.Flask-SQLAlchemy

Bazı kayıtları id nasıl silebilirim?

Şimdi şu kodu kullanın:

user = User.query.get(id) 
db.session.delete(user) 
db.session.commit() 

Ama herhangi bir sorgu önce silme işlemi yapmak istemiyoruz. Bunu yapmanın bir yolu var mı? Biliyorum, db.engine.execute("delete from users where id=...") kullanabilir, ancak delete() yöntemini kullanmak istiyorum.

Teşekkürler! Bunu yapabilecek

cevap

103

,

User.query.filter_by(id=123).delete()

veya

User.query.filter(User.id == 123).delete()

Düzenleme:

etkili olması delete() için taahhüt emin olun.

+7

Eğer 'koymak emin' 'db.session yapmak .commit() sonunda. nerede db: '' 'db = SQLAlchemy (uygulama)' '' – Ben

+0

Bu yöntemle İÇİNDE kullanabilir miyim? – ram4nd

+0

Uyarı: Python/ORM'de basamaklandırmaya güveniyorsanız bu tür "silme" kademeli olarak çalışmayacaktır. [Önce nesneyi sorgulamanız ve sonra silmeniz gerekir] (https://stackoverflow.com/questions/19243964/sqlalchemy-delete-doesnt-cascade). –