开发者社区> 问答> 正文

PHP怎么能判断加了for update查询的mysql语句是否锁表了,如果锁表延时2秒呢?

mysql加了mysql for update查询时,怎么判断锁表。
详细:最近在做一个项目(PHP),有条查询语句for update过,我想实现,当执行到该查询语句时,如果该查询语句此时有另外一个用户在执行,用sleep延时2秒再执行。我目前的思路是:该查询语句不是加了for update吗,那就判断如果该表锁表了,就延时2秒,是否可以判断是否锁表了,如果锁表了就延时2秒。请教各位大牛是否可以判断,怎么判断?或者有没有更好的其他解决方案,当查询到该语句锁表时延时2秒再执行? (我知道for update后是要等到解锁了再执行该语句。但是目前我的问题是想,当锁表了再延时2秒,来加大其中的时间差。所以我才想延时2秒。)

展开
收起
小旋风柴进 2016-03-06 11:06:21 2961 0
1 条回答
写回答
取消 提交回答
  • 在 select 中加了 for update 的话,如果锁定不成功(别的用户正在锁定中)则产生排队,直到锁定成功才会有返回
    期间并无任何信息返回给用户,所以也就无法干预了

    2019-07-17 18:54:18
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
搭建电商项目架构连接MySQL 立即下载
搭建4层电商项目架构,实战连接MySQL 立即下载
PolarDB MySQL引擎重磅功能及产品能力盛大发布 立即下载

相关镜像