文章内容
2021/11/12 13:21:52,作 者: 黄兵
SQLAlchemy 更新数据
下面是几种 SQLAlchemy 更新数据的方式:
conn = engine.connect()
update_ip_v4_range = (update(IPV4PublicAddress).where(IPV4PublicAddress.ip >= get_from_int)
.where(IPV4PublicAddress.ip <= get_to_int)
.values(
{IPV4PublicAddress.ip_public_address_info_id: get_ip_info_id, IPV4PublicAddress.automatic: False}
))
conn.execute(update_ip_v4_range)
第二种方式:
db.session.query().filter(IPV4PublicAddress.ip >= get_from_int) \
.filter(IPV4PublicAddress.ip <= get_to_int) \
.update({'ip_public_address_info_id': get_ip_info_id, 'automatic': False})
db.session.commit()
或者:
db.session.query(IPV4PublicAddress).filter(IPV4PublicAddress.ip >= get_from_int) \
.filter(IPV4PublicAddress.ip <= get_to_int) \
.update({IPV4PublicAddress.ip_public_address_info_id: get_ip_info_id,
IPV4PublicAddress.automatic: False})
db.session.commit()
第三种方式:
ip_list = [x for x in range(get_from_int, get_to_int + 1)]
db.session.query(IPV4PublicAddress).filter(IPV4PublicAddress.ip.in_(ip_list)) \
.update({IPV4PublicAddress.ip_public_address_info_id: get_ip_info_id,
IPV4PublicAddress.automatic: False})
db.session.commit()
参考资料:
1、How to update SQLAlchemy row entry?
2、SQLAlchemy 1.4 Documentation - UPDATE..FROM
黄兵个人博客原创。
转载请注明出处:黄兵个人博客 - SQLAlchemy 更新数据
评论列表