Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在sqlalchemy中使用复合键删除多个记录_Python_Postgresql_Python 2.7_Orm_Sqlalchemy - Fatal编程技术网

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中是否有更好的方法