mysql 存储引擎 myisam 共享读锁 语法 lock table 表名 read
只要添加了读锁 当前会话可以查询 插入报错
另外一个会话中 插入要等待 查询没问题
lock table testmysam write 添加写锁 可以多个线程读取 只能一个线程写入
当前会话中
SELECT * from testmysam 正常
insert into testmysam value(31) 正常
UNLOCK tables 解锁表
SELECT s.* from testmysam s 查询的时候 别名不行
另外一个会话中
SELECT * from testmysam 等待
insert into testmysam value(2) 等待
当前会话
BEGIN
select * from testdemo where id=1 for update //锁住当前行
update testdemo set c1='1' where id =1 修改数据 在当前会话查询会显示修改结果 在另外一个会话中查询 不会显示结果
COMMIT
另外一个会话
修改成功
update testdemo set c1='1' where id =2
修改会阻塞
update testdemo set c1='1' where id =1
这里查询的结果是commit之前的数据 如果要显示修改之后的数据 要在上面有commit后
SELECT * FROM testdemo where id=1