mysql数据库关于事物的问题?求解答
程序员文章站
2022-03-24 13:25:01
表格代码: 一个表格如下: 操作代码如下: 代码1: 代码2: 2个代码不同点在于第4行;单独执行时代码1不能成功执行,代码2能成功执行。 若是将代码1和代码2分别先执行1遍,由于 ROLLBACK 的影响,数据库不会发生改变。 若是在代码1执行1遍后,在只执行 COMMIT; 后,会造成数据库的值 ......
表格代码:
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; 后,数据库的值不发生改变。
请问这是什么原因?
下一篇: 能文能武的唐赛儿;15岁时武术震天下
推荐阅读
-
求大神解答一个数据库语句的问题
-
c#-关于C#更新mysql数据库结果异常问题,求大神帮忙
-
本人已接近奔溃,求各位解答下mamp环境下连接数据库和系统设置的几个小问题,不甚感激
-
关于windows下安装mysql数据库出现中文乱码的问题
-
数据库~Mysql派生表注意的几点~关于百万数据的慢查询问题
-
MySQL数据库常见问题1:关于 “ MySQL Installer is running in Community mode ” 的解决办法
-
关于数据库中保留小数位的问题_MySQL
-
关于用php连接mysql数据库的问题
-
关于MySQL数据库中文乱码问题的简单查看与解决
-
关于Navicat连接MySql数据库慢的问题