Mysql 事务测试

一个简单的试验,你可以看到在 p1中设置的autocommit=0,运行完p1,p2后然后rollback会把p1,p2把插入的记录全部回滚掉。

SQL code
mysql > create table tab1 ( -> id int primary key -> ) ENGINE = InnoDB ; Query OK, 0 rows affected ( 0.09 sec) mysql > insert into tab1 values ( 1 ); Query OK, 1 row affected ( 0.08 sec) mysql > select * from tab1; + -- --+ | id | + -- --+ | 1 | + -- --+ 1 row in set ( 0.00 sec) mysql > mysql > CREATE PROCEDURE p1 () -> BEGIN -> set @@autocommit = 0 ; -> insert into tab1 values ( 11 ); -> end -> // Query OK, 0 rows affected ( 0.00 sec) mysql > CREATE PROCEDURE p2 () -> begin -> insert into tab1 values ( 12 ); -> end -> // Query OK, 0 rows affected ( 0.00 sec) mysql > delimiter ; mysql > mysql > select @@autocommit ; + -- ------------+ | @@autocommit | + -- ------------+ | 1 | + -- ------------+ 1 row in set ( 0.00 sec) mysql > call p1(); Query OK, 1 row affected ( 0.00 sec) mysql > select @@autocommit ; + -- ------------+ | @@autocommit | + -- ------------+ | 0 | + -- ------------+ 1 row in set ( 0.00 sec) mysql > call p2(); Query OK, 1 row affected ( 0.00 sec) mysql > select * from tab1; + -- --+ | id | + -- --+ | 1 | | 11 | | 12 | + -- --+ 3 rows in set ( 0.00 sec) mysql > rollback ; Query OK, 0 rows affected ( 0.05 sec) mysql > select * from tab1; + -- --+ | id | + -- --+ | 1 | + -- --+ 1 row in set ( 0.00 sec) mysql >
 
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值