位置: 编程技术 - 正文

浅谈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)

  • 偷税漏税是指什么税种
  • 三栏式明细账适用于银行存款吗
  • 企业回购股票会使所有者权益
  • 少做收入第二年怎么算
  • 租赁负债的计量
  • 实收资本增加的原因
  • 银行贷款减值准备转回处理
  • 残疾人一次性奖金
  • 小规模纳税人消费税怎么计算
  • 广告费怎么入账
  • 税收返还怎么做会计分录
  • 企业印花税算法
  • 汽车公司场地租金怎么算
  • 出口货物退税率查询
  • 去年多计提费用,汇算清缴时做纳税调增处理
  • 离职补偿金要交个税的例子
  • 企业网银使用
  • 机票退票手续费为什么这么贵
  • 种子销售公司
  • 投入资本属于净资产吗
  • 发票遗失登报费用账务处理
  • 预提长期借款利息的会计分录怎么写
  • 拆迁安置房如何写两人名字
  • 银行认购公司债券的条件
  • 公司奖金没有按时发可以要吗
  • 对于在某一时点履行义务,企业应当在
  • 预支员工报销费用会计科目
  • auto learn
  • php16进制
  • 主营业务收入借贷方向
  • typescript tsconfig
  • ussd命令
  • 出口退税会计分录怎么写
  • css设置背景图片填充
  • 员工福利费会计分录 最新
  • 建筑企业总包单位有哪些
  • 股东股权转让是什么意思
  • 进口商品会计分录怎么写
  • windows 和 linux
  • 织梦模板官网
  • 印花税的计税依据为各种应税凭证上所记载的计税金额
  • 发票勾选后为什么申报表里没有数据
  • 管理费用主要包括
  • 什么情况下适用简易程序
  • 土地增值税要计入税金及附加吗
  • 契税和印花税的会计分录
  • 增值税专用发票的税率是多少啊
  • 债券收益可以表现为三种形式
  • 收到广告费分录
  • 进项税转出怎样做账务处理
  • 增值税发票超过多久不能抵扣
  • 打印的机票行程单怎么看
  • 应交税费期初有余额吗
  • 亏损弥补的会计处理方法
  • 汇算清缴费用调增会计处理
  • 集团内部资产无偿划转是否缴纳印花税
  • 如何查询一个企业的纳税情况
  • 固定资产清理包括什么会计科目
  • exe什么意思?
  • windows8功能设置
  • win7系统运行红警黑屏有声音
  • win7怎么连接手机上网
  • unity性能优化工具
  • opengl多级采样消除锯齿有什么用
  • 简单解析空中三角测量的意义
  • vbs和批处理区别
  • unity游戏开发入门经典
  • jquery和css的区别
  • javascript常用语句
  • python调用cuda执行加法
  • shell循环遍历目录
  • js创建对象的三种方式
  • python科学计算程序
  • nodejs操作mysql数据库
  • jQuery处理XML文件的几种方法
  • 企业如何注册电子税务局账号
  • 江苏电子税务局网站官网
  • 重庆沙坪坝区沙磁巷幼儿园
  • 广东省电子税务局电话
  • 争议问题
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设