Python 在sqlalchemy中使用复合键删除多个记录
我有一个带有复合主键的表 报告稳定:Python 在sqlalchemy中使用复合键删除多个记录,python,postgresql,python-2.7,orm,sqlalchemy,Python,Postgresql,Python 2.7,Orm,Sqlalchemy,我有一个带有复合主键的表 报告稳定: id1、id2、数据,… 我想根据复合键列表删除多行。 例如,[(1,0)、(1,1)、(2,0)、(3,0)、(3,1)、(3,2)、(3,3)] 如何使用sqlalchemy删除与ids列表匹配的记录?我试图通过在循环中链接或来构造查询 tuple_list = [(1,0),(1,1),(2,0),(3,0),(3,1),(3,2),(3,3)] with runtime.terminating_sn('adb', 'user', cid) as se
id1、id2、数据,…
我想根据复合键列表删除多行。
例如,[(1,0)、(1,1)、(2,0)、(3,0)、(3,1)、(3,2)、(3,3)]
如何使用sqlalchemy删除与ids列表匹配的记录?我试图通过在循环中链接或
来构造查询
tuple_list = [(1,0),(1,1),(2,0),(3,0),(3,1),(3,2),(3,3)]
with runtime.terminating_sn('adb', 'user', cid) as session:
base_or = or_(
and_(Reports.id1 == tuple_list[0][0], Reports.id2 == tuple_list[0][1]),
and_(Reports.id1 == tuple_list[1][0], Reports.id2 == tuple_list[1][1]))
for i in range(2, len(tuple_list)):
base_or = or_(base_or, and_(Reports.id1 == tuple_list[i+1][0],
Reports.id2 == tuple_list[i+1][1]))
session.query(Reports).filter(base_or).delete()
session.commit()
我想知道在python中是否有更好的方法