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;
}
MYSQL锁表的用法,防止并发情况下的重复数据相关推荐
- mysql 并发避免锁表_MYSQL锁表的用法,防止并发情况下的重复数据
项目中有些使用的redis存储,当对redis进行rehash的时候感觉是比较麻烦的.于是写了个简单的读取redis到数据库的关键方法.仅供参考. package com.redis.web; imp ...
- mysql 并发锁表_MySQL锁表的用法,防止并发情况下的重复数据
早就听说lock tables和unlock tables这两个命令,从字面也大体知道,前者的作用是锁定表,后者的作用是解除锁定.但是具体如何用,怎么用,不太清楚.今天详细研究了下,总算搞明白了2者的 ...
- mysql基础14(关于mysql数据库在没有主键情况下去除重复数据办法)
关于mysql数据库在没有主键情况下去除重复数据办法 约定 表名:mat 根据 cat 字段去重 新增加主键为 id 步骤 1.为mat新增一列自增主键 alter table mat add col ...
- php mysql 库存变负数_解决并发情况下库存减为负数问题
场景: 一个商品有库存,下单时先检查库存,如果>0,把库存-1然后下单,如果<=0,则不能下单,事务包含两条sql语句: select quantity from products WHE ...
- 【问题】如何避免并发情况下的重复提交
背景: 在业务开发中,我们常会面对防止重复请求的问题.当服务端对于请求的响应涉及数据的修改,或状态的变更时,可能会造成极大的危害.重复请求的后果在交易系统.售后维权,以及支付系统中尤其严重. 重复请求 ...
- mysql 锁表的情况
mysql其实在我们使用的时候比较容易造成表被锁的情况,例如以下的几种方式 目前有表 test , 字段分别有 id,name,age show full PROCESSLIST 查询表的执行情况 ...
- mysql 并发避免锁表_Yii+MYSQL锁表防止并发情况下重复数据的方法
本文实例讲述了Yii+MYSQL锁表防止并发情况下重复数据的方法.分享给大家供大家参考,具体如下: lock table 读锁定 如果一个线程获得在一个表上的read锁,那么该线程和所有其他线程只能从 ...
- 并发产生mysql锁表_Yii+MYSQL锁表防止并发情况下重复数据的方法
本文实例讲述了Yii+MYSQL锁表防止并发情况下重复数据的方法.分享给大家供大家参考,具体如下: lock table 读锁定 如果一个线程获得在一个表上的read锁,那么该线程和所有其他线程只能从 ...
- MySQL锁表解决方法(转)
MySQL锁表解决方法 一.我的处理过程 1.查进程,主要是查找被锁表的那个进程的ID SHOW PROCESSLIST; 2.kill掉锁表的进程ID KILL 10866;//后面的数字即时进程的 ...
最新文章
- python 序列化函数_python – 如何序列化sympy lambdified函数?
- Xamarin iOS开发中的编辑、连接、运行
- OpenGL 加载模型Model
- Direct2D (35) : 通过 DirectWrite 获取字体列表
- EOJ_1064_树的层号表示法
- Spring 自定义注解,配置简单日志注解
- 磁盘已满,如何从 Mac 中删除大文件?
- pycharm看php文件是乱码,Jetbrains-PhpStorm2019.2中文乱码问题
- python画密度散点图_实战Pyhton中matplotlib箱线图的绘制(matplotlib双轴图、箱线图、散点图以及相关系数矩阵图)...
- 文本分析苏轼的词以及苏轼的人生轨迹地图
- 计算机类毕业设计评阅书评语,本科毕业论文评阅人评语_毕业论文评阅人评语模板文库_本科毕业论文评阅老师评语大全...
- 1056. Confusing Number
- Linux文件属性的777权限
- 用 GNS3 做CCNA网络实验(4)
- python图形化编程 在线教程_使用Python Editor进行在线图形化编程
- 卡尔曼滤波最完整公式推导
- 昆石VOS2009/VOS3000 2.1.6.00 Web接口说明书
- 笔记 GWAS 操作流程5-2:利用GEMMA软件进行LMM+PCA+协变量
- 客户端数字证书申请指南、安装指南和备份指南
- 如何在word中插入PDF文件