Python Sqlalchemy如何实现select for update

Orbofi AI中文网

领取MOLI红包
栏目分类
FXD中文网
FXD中文网
你的位置:Orbofi AI中文网 > FXD中文网 > Python Sqlalchemy如何实现select for update
Python Sqlalchemy如何实现select for update
发布日期:2025-01-03 18:07    点击次数:163
sqlalchemy 对于行级锁有两种实现方式,with_lockmode(self, mode): 和 with_for_update(self, read=False, nowait=False, of=None),前者在sqlalchemy 0.9.0 被废弃,用后者代替。所以我们使用with_for_update ! 看下函数的定义: q = sess.query(User).with_for_update(nowait=True, of=User) 对应于sql: SELECT users.id AS users_id FROM users FOR UPDATE OF users NOWAIT mysql 不支持这几个参数,转成sql都是: SELECT users.id AS users_id FROM users FOR UPDATE 范例: 结果: SELECT ... FOR UPDATE 的用法,不过锁定(Lock)的数据是判别就得要注意一下了。由于InnoDB 预设是Row-Level Lock,所以只有「明确」的指定主键,MySQL 才会执行Row lock (只锁住被选取的数据) ,否则mysql 将会执行Table Lock (将整个数据表单给锁住)。 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

Powered by Orbofi AI中文网 @2013-2022 RSS地图 HTML地图

Copyright Powered by站群系统 © 2013-2024