mysql数据库关于事物的问题?求解答
Posted mh9413
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql数据库关于事物的问题?求解答相关的知识,希望对你有一定的参考价值。
表格代码:
CREATE TABLE `t_teacher` ( `id` int(20) NOT NULL AUTO_INCREMENT, `name` varchar(20) NOT NULL, `deposit` bigint(20) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=71 DEFAULT CHARSET=utf8;
一个表格如下:
操作代码如下:
代码1:
START TRANSACTION; SELECT * FROM t_teacher; UPDATE t_teacher SET deposit = deposit+100 WHERE name =‘老李‘; INSERT INTO t_teacher(id,name,deposit) VALUES (8,‘老张‘,7000); ROLLBACK; COMMIT;
代码2:
START TRANSACTION; SELECT * FROM t_teacher; UPDATE t_teacher SET deposit = deposit+100 WHERE name =‘老李‘; INSERT INTO t_teacher(name,deposit) VALUES (‘老张‘,7000); ROLLBACK; COMMIT;
2个代码不同点在于第4行;单独执行时代码1不能成功执行,代码2能成功执行。
若是将代码1和代码2分别先执行1遍,由于 ROLLBACK 的影响,数据库不会发生改变。
若是在代码1执行1遍后,在只执行 COMMIT; 后,会造成数据库的值改变,其结果相当于执行了行3;
但是在代码2执行1便后,在执行 COMMIT; 后,数据库的值不发生改变。
请问这是什么原因?
以上是关于mysql数据库关于事物的问题?求解答的主要内容,如果未能解决你的问题,请参考以下文章