文章内容

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 更新数据

分享到:

发表评论

评论列表