1. 首页
  2. 数据库
  3. 其它
  4. Python Sqlalchemy如何实现select for update

Python Sqlalchemy如何实现select for update

上传者: 2020-12-22 18:23:30上传 PDF文件 53.4KB 热度 19次

sqlalchemy 对于行级锁有两种实现方式,with_lockmode: 和 with_for_update,前者在sqlalchemy 0.9.0 被废弃,用后者代替。看下函数的定义:q = sess.query.with_for_update对应于sql:SELECT users.id AS users_id FROM users FOR UPDATE OF users NOWAITmysql 不支持这几个参数,转成sql都是:SELECT users.id AS users_id FROM users FOR UPDATE范例:结果:SELECT ... FOR UPDATE 的用法,不过锁定的数据是判别就得要注意一下了。由于InnoDB 预设是Row-Level Lock,所以只有「明确」的指定主键,MySQL 才会执行Row lock ,否则mysql 将会执行Table Lock 。

用户评论