mysql数据库的共享锁

时间:2026-02-12 22:34:25

1、在mysql中的test数据库中建立一个表shoufei:

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=11 DEFAULT CHARSET=utf8

mysql数据库的共享锁

mysql数据库的共享锁

2、用2个用户登录mysql(abc_1,abc_2),演示对记录的共享锁。

mysql数据库的共享锁

mysql数据库的共享锁

3、abc_1用户对表id为1的记录加共享锁(不让abc_2用户修改):

SET autocommit=0;

START TRANSACTION;

SELECT * FROM shoufei WHERE id=1 LOCK IN SHARE MODE ;

mysql数据库的共享锁

4、abc_2用户对id=1的修改,命令等待……会出现超时:

SET autocommit=0;

START TRANSACTION;

UPDATE shoufei SET jiage=10 WHERE id=1;

mysql数据库的共享锁

5、abc_1用户提交事务,会记录解锁:

commit;

mysql数据库的共享锁

6、ab_1用户对记录解锁话,abc_2用户对id=1的记录修改成功。

SET autocommit=0;

START TRANSACTION;

UPDATE shoufei SET jiage=10 WHERE id=1;

COMMIT;

mysql数据库的共享锁

7、abc_2查询表中的数据:

select * from shoufei;

mysql数据库的共享锁

© 2026 五度知识库
信息来自网络 所有数据仅供参考
有疑问请联系站长 site.kefu@gmail.com