【问题标题】:SQLAlchemy: Deleting multiple records at a time using in_ operatorSQLAlchemy:使用 in_ 运算符一次删除多条记录
【发布时间】:2021-06-07 19:15:06
【问题描述】:

我有一个包含数千行的表。我想使用 in 子句删除多行。

SQL 服务器代码:

DELETE tbl_Jenny_ACW_AG2_AGENT_DAY_Genesys_Stage
WHERE Avaya_Id IN ('','',''....'')

我正在尝试使用 SQLAlchemy 执行上述操作,

qry = (session.query(
                tbl_Jenny_ACW_AG2_AGENT_DAY_Genesys_Stage.c.Avaya_Id,
                func.count(),
                )
        .group_by(
                tbl_Jenny_ACW_AG2_AGENT_DAY_Genesys_Stage.c.Avaya_Id,
                )
        # comment this line out to see all the groups
        .having(func.count()>1)
      )

dlt_dup = tbl_Jenny_ACW_AG2_AGENT_DAY_Genesys_Stage.delete().where(tbl_Jenny_ACW_AG2_AGENT_DAY_Genesys_Stage.c.Avaya_Id.in_(qry))

session.execute(dlt_dup)

以上代码将查询结果并执行查询。但是,我无法删除重复记录,我得到的错误是 [参数:(1,)]

【问题讨论】:

    标签: python sql-server pandas sqlalchemy flask-sqlalchemy


    【解决方案1】:
    qry = db.session.query(Tablename.ColumnName, func.count()).filter(condition=value).group_by(Tablename.ColumnName).all().
    
    db.session.delete(qry)
    

    【讨论】:

    • 这个答案对您有帮助吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-01-04
    • 1970-01-01
    • 1970-01-01
    • 2020-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多