sqlalchemy批量更新 批量删除 批量分别更新部分字段

Update in 2023
SQLAlchemy has it’s own bulk operation. See doc on bulk operation for SQLAlchemy here.
Session.bulk_update_mappings() # For dictionaries
Session.bulk_save_objects # For objects

https://docs.sqlalchemy.org/en/14/orm/persistence_techniques.html#bulk-operations

批量分别更新

bindparam 字段必须和需要更新的表的字段不同,可以加 _ 来区分,如 material 为需要更新的字段,_material 为 bindparam 的字段

# values 里面的字段必须和需要更新的表的字段相同

from sqlalchemy import bindparam, update

    # bindparam 字段必须和需要更新的表的字段不同,可以加 _ 来区分,如 material 为需要更新的字段,_material 为 bindparam 的字段
    # values 里面的字段必须和需要更新的表的字段相同
    stmt = update(Stock_rpa_mm373). \
        where(Stock_rpa_mm373.material == bindparam('_material'),
              Stock_rpa_mm373.location == bindparam('_location')). \
        values({
        'code': bindparam('code'),
    })

    session.execute(stmt, [
        {'material': '0101HD400-000-G-BT', 'code': 'jack@yahoo', '_material': '0101HD400-000-G-BT', '_location': 'BA1C    '},
    ])
    session.commit()

在这里插入图片描述
参考
https://onebite.dev/how-to-bulk-update-in-sqlalchemy-python/

批量更新

session.query(User).filter(User.district=='shandong').update({User.arrress: '中国'})
session.commit()

批量删除

session.query(User).filter(User.district=='shandong').delete()
session.commit()

参考
https://www.sunxiaoning.com/language/1093.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值