位置: 编程技术 - 正文

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

  • 电动三轮车发票和合格证丢了怎么上牌照
  • 建筑施工企业的分公司区域公司等较大的
  • 由旅行社开具的电子普票代订机票能抵扣税吗?
  • 个体的个人所得税怎么算
  • 缴纳的增值税比账面的少怎么做账
  • 进口商品仓库
  • 缴纳销项税额要交税吗
  • 没有工会 还需要交钱吗
  • 已投入使用的机器设备才能计提折旧对吗
  • 可供出售权益工具投资是非货币
  • 计提分红款体现在利润表中哪一个
  • 购买完货物又退回怎么办
  • 对公付款没有发票
  • 预付绩效工资是什么意思
  • 外派人员的一次工作总结
  • 产权转移书据印花税申报期限
  • 退休返钱怎么算的
  • 定额发票去年的能用吗
  • 附加税的计提基数怎么算
  • 营改增后劳务公司账务处理
  • 网上申请的增值税专用纸质发票收到后如何确认已收到
  • 房屋租赁税务局开票税点
  • 我的初级备考经验------极限挑战,超越自我
  • 个税扣缴端如何删除员工信息
  • 通行费发票怎么开
  • 包工包料装修
  • wifi密码怎么改手机里面
  • u盘加载缓慢
  • PHP:oci_password_change()的用法_Oracle函数
  • 员工伙食费明细表
  • 职工教育经费一定要提吗
  • mmtraylsi.exe是什么进程 有什么作用 mmtraylsi进程查询
  • 房地产预售收入如何缴纳所得税
  • 西班牙的藏红花好不好
  • composer安装不知道这样的主机
  • 销售使用过的固定资产3%减按2%
  • 仙岩寺庙
  • yii框架入门
  • 服务行业的进项
  • 自己的智能ai聊天怎么用
  • 服务什么行业
  • 固定资产改造更新
  • 未开票金额怎么报税
  • 子公司分公司和办事处账务上的区别有哪些
  • 小企业会计准则会计科目表
  • 出纳报销时应注意什么
  • python缺失值的解决方法
  • 货币市场基金的特点
  • sql server删除表命令
  • 出口货物弃货
  • 办理食品经营许可证需要什么条件
  • 质量问题的扣款计入什么科目
  • 实收资本或股本什么意思
  • 应收账款增加给哪一方
  • 银行进账单是什么样子的
  • 招待费汇算清缴一定要调整的吗
  • 生育津贴申请流程
  • 公司账户可以转账到信用卡吗
  • c++ 虚数
  • mysql varchar2
  • ssms连接mysql
  • MySql 5.6.35 winx64 安装详细教程
  • mysql教程入门
  • windows7安装后正常使用的安装方法
  • 安装双系统ubuntu和win
  • centos查看inode
  • 电脑windows8怎么样
  • js动态生成页面
  • python xml.etree
  • 怎么在html中调用js的函数
  • 安卓开发viewpager的用法
  • js时间范围
  • python怎么做脚本
  • js实现功能
  • python发送短信到手机
  • android:theme="@style/apptheme"
  • 广西壮族自治区图书馆
  • 临时增版
  • 美国各州地税税率
  • 接受虚开增值税普票如何补救
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设