一、作用
select…for update 常用于对数据进行行锁,比如当我查询出来的数据为了防止被其他线程同步修改,删除导致脏数据的产生。此时可以使用select…for update 对当前查询出来的数据进行加锁,其他线程要修改/删除这条同样的数据时,必须等上面select…for update 事务提交或回滚后才能进行操作。
二、用法
-
select…for update 其余线程会一直等待
-
select * from test where a=2 for update wait 3; 如果3秒内还是无法加锁则返回错误
-
select * from test where a=2 for update nowait;不会等待,直接报错
-
select * from Table1 a join Table2 b on a.pkid=b.pkid where a.pkid = 10 for update of a.pkid 只锁定Table1中满足条件的行, 这就是使用of子句的作用. 比较常用于多个表的操作
版权声明:本文为xuguxiong原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。