位置: 编程技术 - 正文

浅谈Yii乐观锁的使用及原理(乐观锁用法)

编辑:rootadmin

推荐整理分享浅谈Yii乐观锁的使用及原理(乐观锁用法),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:乐观锁实例,乐观锁的作用,乐观锁会存在什么问题,乐观锁一定就是好的吗?,乐观锁一定就是好的吗?,乐观锁一定就是好的吗?,乐观锁的两种实现方式,乐观锁的作用,内容如对您有帮助,希望把文章链接给更多的朋友!

本文介绍了Yii乐观锁的使用及原理,自己做个学习笔记,也分享给大家,希望对大家有用处

原理:

数据表中使用一个int类型的字段来存储版本号,即该行记录的版本号。更新数据时,对比版本号是否一致

sql查询代码如下(伪代码)

即在更新时的where查询条件中,带上之前查询记录时得到的版本号,如果其他线程已经修改了该记录,则版本号势必不会一致,则更新失败

示例

数据表

假设有如下数据表

浅谈Yii乐观锁的使用及原理(乐观锁用法)

模型类

appmodelsTestVer

该模型类,重写BaseActiveRecord类中的optimisticLock方法

声明用于记录版本号的字段

updateRecord修改id为1的记录

控制器

控制器中调用updateRecord方法

Yii Debugger结果

查看database选项,可以查看到实际执行的sql语句。

有一条语句如下

Yii乐观锁实现原理

实现原理在yiidbBaseActiveRecord::updateInteranl()方法

从上面的代码中,我们不难得出:

当 optimisticLock() 返回 null 时,乐观锁不会被启用。 版本号只增不减。 通过乐观锁的条件有2个,一是主键要存在,二是要能够完成更新。 当启用乐观锁后,只有下列两种情况会抛出 StaleObjectException 异常: 当记录在被别人删除后,由于主键已经不存在,更新失败。 版本号已经变更,不满足更新的第二个条件。

标签: 乐观锁用法

本文链接地址:https://www.jiuchutong.com/biancheng/291023.html 转载请保留说明!

上一篇:浅谈PHP发送HTTP请求的几种方式

下一篇:深入理解Yii2.0乐观锁与悲观锁的原理与使用(深入理解llvm)

  • 企业的罚款支出包括违约金吗
  • 小规模增值税税率表2023年最新版
  • 其他应付款计入资本公积
  • 什么情况下要交土地出让金
  • 居民转供电收费标准
  • 什么企业可以开增值税专用发票
  • 印花税的计税依据为各种应税凭证上所记载的计税金额
  • 工程收入开票
  • 销项税额转出减去还是加上
  • 月初认证的增值税发票可以吗
  • 实习生应该如何计算个人所得税
  • 购入无形资产产生的咨询费
  • 享受所得税减免优惠的生产性外商投资企业包括
  • 事业单位其他收入的会计分录
  • 携税宝服务费可以入办公费吗
  • 建筑业异地预缴税款怎么抵扣
  • 工会经费人数在哪里查询
  • 税控盘抵税可以跨年吗
  • 返还的个税手续费奖励给个人需要缴纳个税吗
  • 装修费用如何做分录
  • 地下车库是否需要设置消防电梯?
  • 员工福利没有发票
  • 公司是否有审计资质
  • 清算结业是什么意思
  • 利息支出怎么结转
  • 子公司和母公司的财务关系
  • guest的作用
  • 已开发票发生销售退回如何做账?
  • 进口增值税属于海关代征的税收吗
  • 免税不能开专票
  • PHP:oci_rollback()的用法_Oracle函数
  • 转账凭证摘要怎么写原材料的
  • 银行退回手续费的账务处理
  • 如何失业保险金
  • php是面向对象语言吗
  • 转让存货属于什么收入
  • 工程项目成本预算表
  • 销售汇总怎么做分录
  • 应付帐款借方余额怎么算
  • 小程序报错怎么解决
  • 新会计准则开办费如何做账务处理
  • 如何写煎荷包蛋过程
  • 新政府会计制度科目解读
  • SwinIR实战:详细记录SwinIR的训练过程
  • python打印type
  • 企业会计准则规定了
  • js reverse
  • 医疗机构销售药品是否征收增值税
  • 账面成本与账面余额
  • 自定义转账计算所得税费用
  • 劳务外包会计分录最新
  • 税金及附加和营业税金及附加是一个科目吗
  • 原材料当废品卖可以吗
  • 什么叫做未入账金额
  • 省外出差
  • 怎么从会计小白做到总账会计
  • sqlserver数据库优化的几种方式
  • 搜狗网络
  • 主板各个系列详解
  • ubuntu tc
  • ubuntu下安装windows
  • targz和zip
  • 为什么好不容易瘦了两斤,两天吃好了又上来了?
  • pax是什么文件
  • usb转串口的接线方法
  • linux中安装软件可使用哪些方式
  • 11月 Win8.1 Update 3更新哪些内容?开始菜单依然没有
  • qt渲染机制
  • linux自动重启程序脚本
  • python如何获取
  • jquery td
  • javascript要怎么学
  • javascript绘制图形
  • javascript基于什么的语言
  • js arrayfrom
  • 轻轻松松学习JavaScript
  • ubuntu系统的手机
  • javascript用法
  • 南京政务服务中心
  • 税审工作流程
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设