首页 > 代码库 > mysql 查询锁表
mysql 查询锁表
1)使用情景“判断通过后写入数据库”,这个一般是不会有问题的, 但并发访问的时候就不太好搞。因为写入(insert)是需要时间的,假设现在有两个并发请求,(假设第一个访问是最后一个符合条件的写入请求,按照逻辑,第二个请求应该是不合法、不能写入的),在第一请求成功写入之前,第二请求查询到未更新的数据记录,因为记录是未更新的,所以它也是可以通过判断的。最后导致两个请求都写入数据了。
2)解决办法:查询锁表
在我处理完入库前,查都不让你查了,这样就不会判断错误了吧
3)锁表语句
LOCK TABLES tbl_name WRITE;
注意这里是用的 WRITE!!
解锁:
UNLOCK TABLES;
注意:是要查询之前锁表(select 之前),锁表之后,本进程是可以继续查询的,只是锁了其他进程的查询
mysql 查询锁表
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。