Wel*_*lls 19 python sqlalchemy
我无法弄清楚这一点:我想删除匹配查询中表中的所有记录.有点像这样.
engine = sqlalchemy.create_engine(string)
meta = MetaData(bind=engine)
meta.reflect(bind=engine, schema='myschema')
Base = automap_base(metadata=meta)
Base.prepare(engine, reflect=True)
Classes = Base.classes
Session = sessionmaker(bind=engine)
session = Session()
session.delete(plays.record_id == '123')
Run Code Online (Sandbox Code Playgroud)
但这不起作用.这里有什么想法?我得到的错误是:
error in parsing record ID 020087: Class 'sqlalchemy.sql.elements.BinaryExpression' is not mapped
mut*_*han 36
在SQL Alchemy中,您将从数据库中删除通过查询获得的对象.你可以用2种方式做到这一点:
使用查询删除(仅发出一个DELETE语句):
session.query(User).filter(User.id==7).delete()
session.commit()
Run Code Online (Sandbox Code Playgroud)
删除查询返回的对象实例(将发出2个语句:首先SELECT,然后DELETE):
obj=session.query(User).filter(User.id==7).first()
session.delete(obj)
session.commit()
Run Code Online (Sandbox Code Playgroud)
ana*_*thi 23
删除所有记录
#for all records
session.query(Model).delete()
session.commit()
Run Code Online (Sandbox Code Playgroud)
删除的单行
如果要删除特定记录filter,请在查询中使用try子句。前任。
#for specific value
session.query(Model).filter(Model.id==123).delete()
session.commit()
Run Code Online (Sandbox Code Playgroud)
按对象删除单条记录
record_obj = session.query(Model).filter(Model.id==123).first()
session.delete(record_obj)
session.commit()
Run Code Online (Sandbox Code Playgroud)
https://flask-sqlalchemy.palletsprojects.com/en/2.x/queries/#deleting-records