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就会进行锁表。

浙公网安备 33010602011771号