当前位置:   article > 正文

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

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()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

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

批量更新

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

批量删除

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

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/181068
推荐阅读
相关标签
  

闽ICP备14008679号