mysql 手工锁表

-- mysql 手工锁表
show VARIABLES like '%autocommit%'; 
--关闭自动提交
set @@autocommit = 0; 
-- 行锁
SELECT * from users where name = '17' for UPDATE;
-- 提交 释放锁
COMMIT;
-- 恢复自动提交
set @autocommit = 1;

 执行以上语句,没有commit释放锁之前,另一个事务update获取锁失败了,可见手工锁表成功!

 

补充:

如果查询条件用了索引/主键,那么select ..... for update就会进行行锁。如果是普通字段(没有索引/主键),那么select ..... for update就会进行锁表。

posted @ 2021-10-12 19:34  *乐途*  阅读(466)  评论(0)    收藏  举报