码迷,mamicode.com
首页 > 数据库 > 详细

mysql 查询锁表

时间:2017-08-02 17:39:13      阅读:175      评论:0      收藏:0      [点我收藏+]

标签:导致   pre   mysql   数据   解锁   注意   sql   锁表   sel   

1)使用情景“判断通过后写入数据库”,这个一般是不会有问题的, 但并发访问的时候就不太好搞。因为写入(insert)是需要时间的,假设现在有两个并发请求,(假设第一个访问是最后一个符合条件的写入请求,按照逻辑,第二个请求应该是不合法、不能写入的),在第一请求成功写入之前,第二请求查询到未更新的数据记录,因为记录是未更新的,所以它也是可以通过判断的。最后导致两个请求都写入数据了。

 

2)解决办法:查询锁表

在我处理完入库前,查都不让你查了,这样就不会判断错误了吧

 

3)锁表语句

LOCK TABLES tbl_name WRITE;

注意这里是用的 WRITE!!

解锁:

UNLOCK TABLES;

 

 

注意:是要查询之前锁表(select 之前),锁表之后,本进程是可以继续查询的,只是锁了其他进程的查询

 

mysql 查询锁表

标签:导致   pre   mysql   数据   解锁   注意   sql   锁表   sel   

原文地址:http://www.cnblogs.com/tujia/p/7274957.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!