设为首页
收藏本站
用户名
Email
自动登录
找回密码
密码
登录
立即注册
只需一步,快速开始
快捷导航
登录
注册
论坛首页
BBS
建站模版
微站设计
虚拟主机
企业邮箱
博客日志
Blog
搜索
搜索
搜索
热搜
长春
优惠
活动
做网站
本版
帖子
用户
本版
帖子
用户
请
登录
后使用快捷导航
没有帐号?
立即注册
道具
勋章
任务
留言板
设置
我的收藏
退出
时时商务社区
»
论坛首页
›
建站资源
›
建站技术
›
Yii+MYSQL锁表防止并发情况下重复数据的方法 ...
返回列表
查看:
1903
|
回复:
0
Yii+MYSQL锁表防止并发情况下重复数据的方法
[复制链接]
网络通达
当前离线
积分
7881
2647
主题
2647
帖子
7881
积分
论坛元老
论坛元老, 积分 7881, 距离下一级还需 9992118 积分
论坛元老, 积分 7881, 距离下一级还需 9992118 积分
积分
7881
发消息
电梯直达
楼主
发表于 2018-2-14 05:34:29
|
只看该作者
|
倒序浏览
|
阅读模式
本文实例讲述了Yii+MYSQL锁表防止并发情况下重复数据的方法。分享给大家供大家参考,具体如下:
lock table 读锁定
如果一个线程获得在一个表上的read锁,那么该线程和所有其他线程只能从表中读数据,不能进行任何写操作。
lock tables user read;//读锁定表
unlock tables;//解锁
lock tables user read local;//本地读锁定表,其他线程的insert未被阻塞,update操作被阻塞
lock table 写锁定
如果一个线程在一个表上得到一个 write锁,那么只有拥有这个锁的线程可以从表中读取和写表。其它的线程被阻塞。
lock tables user write;//写锁定表
unlock tables;//解锁
Yii中的用法实例
/**
* 当日单项内容状态
*/
public function getPointAready($marke,$dayTime){
$model = SysRun::model()->findByAttributes(array('syr_marking'=>$marke,'syr_daytime'=>$dayTime));
if(empty($model)){
//表写锁定
Yii::app()->db->createCommand()->setText("lock tables {{sys_run}} WRITE")->execute();
$model = new SysRun();
$model->syr_marking = $marke;
$model->syr_daytime = $dayTime;
$model->syr_val = 0;
$model->syr_subval = 0;
$model->save();
//表解锁
Yii::app()->db->createCommand()->setText("unlock tables")->execute();
}
return $model;
}
更多关于Yii相关内容感兴趣的读者可查看本站专题:《
Yii框架入门及常用技巧总结
》、《
php优秀开发框架总结
》、《
smarty模板入门基础教程
》、《
php操作office文档技巧总结(包括word,excel,access,ppt)
》、《
php面向对象程序设计入门教程
》、《
php字符串(string)用法总结
》、《
php+mysql数据库操作入门教程
》及《
php常见数据库操作技巧汇总
》
希望本文所述对大家基于Yii框架的PHP程序设计有所帮助。
您可能感兴趣的文章:
mysql 队列 实现并发读
php并发对MYSQL造成压力的解决方法
深入mysql并发插入优化详解
利用mysql事务特性实现并发安全的自增ID示例
MySQL中SELECT+UPDATE处理并发更新问题解决方案分享
MySQL中实现高性能高并发计数器方案(例如文章点击数)
用于App服务端的MySQL连接池(支持高并发)
并发环境下mysql插入检查方案
PHP并发查询MySQL的实例代码
分析MySQL并发下的问题及解决方法
分享到:
QQ好友和群
QQ空间
腾讯微博
腾讯朋友
收藏
0
回复
使用道具
举报
返回列表
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖后跳转到最后一页
用户反馈
客户端