mysql数据库的行锁for update

【mysql数据库的行锁for update】在mysql数据库中行锁for update怎么利用,对某些数据加了行锁,其他用户和事务就不克不及再加锁,必需解锁今后才能加锁,就是数据只能一个事务操作,其他事务不克不及点窜只能读取 。 我写的经验对你进修mysql有帮忙的话,给我投票、点赞或者保藏!
1java怎么获得mysql过程返回多个记实集
1mysql数据库的共享锁
1mysql查询列转当作字符串group_concat

需要这些哦
mysql、sqlyog
方式/
1登录mysql,在test数据库中新建一个表:
CREATE TABLE `shoufei` (  `id` int(11) NOT NULL AUTO_INCREMENT,  `shijian` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,  `xiangmu` varchar(20) NOT NULL,  `jiage` float NOT NULL,  `shuliang` int(11) NOT NULL,  `jine` float DEFAULT NULL,  PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8

mysql数据库的行锁for update

文章插图

2在表增添一些数据 。
insert into `shoufei` (`id`, `shijian`, `xiangmu`, `jiage`, `shuliang`, `jine`) values('1','2019-01-28 11:15:52','银翘解毒丸','2','10','20');
insert into `shoufei` (`id`, `shijian`, `xiangmu`, `jiage`, `shuliang`, `jine`) values('2','2019-01-28 11:15:59','甘草片','15','2','30');
insert into `shoufei` (`id`, `shijian`, `xiangmu`, `jiage`, `shuliang`, `jine`) values('3','2019-01-28 11:16:04','阿莫西林','20','2','40');
insert into `shoufei` (`id`, `shijian`, `xiangmu`, `jiage`, `shuliang`, `jine`) values('4','2019-01-28 11:16:08','午时茶','8','1','8');
insert into `shoufei` (`id`, `shijian`, `xiangmu`, `jiage`, `shuliang`, `jine`) values('5','2019-01-28 11:16:12','银翘解毒丸','2','10','20');

mysql数据库的行锁for update

文章插图

3在mysql中新建两个用户abc_1、abc_2,两个用户登录mysql 。

mysql数据库的行锁for update

文章插图

mysql数据库的行锁for update

文章插图

4abc_1用户对id=2的数据增添行锁:
SELECT * FROM shoufei WHERE id=2 FOR UPDATE;

mysql数据库的行锁for update

文章插图

5abc_1用户对id=2的数据点窜jiage=20:
UPDATE shoufei SET jiage=20 WHERE id=2;
abc_1用户没有提交使命,只能本身看到成果 。

mysql数据库的行锁for update

文章插图

mysql数据库的行锁for update

文章插图

6abc_2用户查询id=2的数据,此中jiage没有点窜因为abc_1用户没有提交使命:
SELECT * FROM shoufei WHERE id=2;

推荐阅读