MySQL savepoint-事务测试

首先,同时开启2个数据库连接测试数据库事务。以下分别用Thread1,Thread2代替。

2个线程的执行顺序为:

 Thread1              Thread2

    1.1

  1.2               

    1.3                 1

    2.1

    2.2

    2.3                 2

    3                  3

    4.1                 

    4.2                 4 

  5                  

 

##prepare test
CREATE TABLE _TRAN(
 k INT AUTO_INCREMENT,
 first_name varchar(255),
 last_name varchar(255),
 PRIMARY KEY (k)
)TYPE=INNODB;


[1] thread
## 1.1 select first_name is 'Simon' , will be return null
select * from _tran where first_name='Simon';

## 1.2 start a transaction,and insert a data to table _tran
START TRANSACTION;
INSERT INTO _tran(`first_name`,`last_name`)
  values('Simon','Tom');
## 1.3 can find a data form _tran where first_name is 'Simon'
select * from _tran where first_name='Simon';

## 2.2 defind a test for savepoint;
savepoint test;
## 2.2 insert into a data again;
insert into _tran(`first_name`,`last_name`)
  values('Simon','Cof');
## 2.3 can find 2 data from _tran where first_name is 'Simon';
select * from _tran where first_name='Simon';

## 3 rollback to savepoint test;
rollback to savepoint test;

## 4.1 find only a row data for _tran where first_name is 'Simon';
select * from _tran where first_name='Simon';
## 4.2 use commit command to commit;
COMMIT;

## 5 find only a row data from _tran where first_name is 'Simon'
select * from _tran where first_name='Simon';

 

[2] thread
## 1 select first_name is 'Simon', will be return null;
select * from _tran where first_name='Simon';

## 2 return null again 2
select * from _tran where first_name='Simon';

## 3 return null agegin 3
select * from _tran where first_name='Simon';

## 4 find only a row data from _tran where first_name is 'Simon'
select * from _tran where first_name='Simon';

 

转载于:https://www.cnblogs.com/chenwenlong/articles/1939744.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值