mysql数据库的共享锁

2025-10-27 21:26:57

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数据库的共享锁

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢