start transaction ;
set autocommit = 0;
insert into a value(3,222);
insert into b value(3,222);
commit;
如上如何使上面两条语句都成立才执行,如果一条不成立都不执行
貌似如果a成立不管b成立与否都执行了,根本没rollback
set autocommit = 0;
insert into a value(3,222);
insert into b value(3,222);
commit;
如上如何使上面两条语句都成立才执行,如果一条不成立都不执行
貌似如果a成立不管b成立与否都执行了,根本没rollback
执行完第二个 insert into b value(3,222); 再判断一下是否成功,成功才能commit;否则还要rollback;
set autocommit = 1;设置自动提交,mysql会自动发出一个commit。
正确的测试:start transaction ;
insert into a value(3,222);
insert into b value(3,222);
rollback;
或者
set @@autocommit = 0;
insert into a value(3,222);
insert into b value(3,222);
rollback;
注意表引擎是INNODB