mysql数据库的行锁for update

 时间:2024-10-28 07:36:27

1、登录mysql,在test数据库中新建一个表:CREATETABLE`shoufei`(螬绣囤扮`id`i荏鱿胫协nt(11)NOTNULLAUTO_INCREMENT,`shijian`timestampNOTNULLDEFAULTCURRENT_TIMESTAMP,`xiangmu`varchar(20)NOTNULL,`jiage`floatNOTNULL,`shuliang`int(11)NOTNULL,`jine`floatDEFAULTNULL,PRIMARYKEY(`id`))ENGINE=InnoDBAUTO_INCREMENT=6DEFAULTCHARSET=utf8

mysql数据库的行锁for update

2、在表增加一些数据。insert into `shoufei` (`id`, `sh坡纠课柩ijian`, `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

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

mysql数据库的行锁for update

5、abc_1用户对id=2的数据修改jiage=20:UPDATE shoufei SET jiage=20 WHERE id=2;abc_1用户没有提交任务,只能自己看到结果。

mysql数据库的行锁for update
mysql数据库的行锁for update

6、abc_2用户查询id=2的数据,其中jiage没有修改因为abc_1用户没有提交任务:SELECT * FROM shoufei WHERE id=2;

mysql数据库的行锁for update

7、abc_2用户对id=2的数据增加行锁(没有成功,超时,abc_1用户没有解锁):SELECT * FROM shoufei WHERE id=2 FOR UPDATE;

mysql数据库的行锁for update

8、abc_1用户提交任务commit,把id=2的数据jiage=20,解锁数据。

mysql数据库的行锁for update

9、abc_2用户,查询id=2的数据并且加锁(解锁成功,查询abc_1用户修改的数据jiage=20):SELECT * FROM shoufei WHERE id=2 FOR UPDATE;

mysql数据库的行锁for update
  • 本田杰德1.5T刷ECU升级方案
  • 爆炒螃蟹的做法
  • 定做棉服4xl是多大号?
  • 华为nova7pro怎样开启口袋模式
  • 浦发银行JCB卡怎么用
  • 热门搜索
    读书的手抄报图片大全 防震手抄报图片 我爱足球手抄报 金秋十月手抄报 手抄报图案小装饰 快乐读书手抄报图片 健康成长手抄报内容 法律伴我行手抄报 清明节的手抄报大全 珍爱生命手抄报资料