为了账号安全,请及时绑定邮箱和手机立即绑定

关于mysql事务的问题

关于mysql事务的问题

hhhzihao2 2016-07-03 13:39:56
假设我要执行三条sql语句 :insert into user1 ( id , name , pwd ) values( null , 111 , 111 ) ;insert into user2 ( id , name , pwd ) values( null , 222 , 222 ) ;insert into user3 ( id , name , pwd ) values( null , 333 , 333 ) ;当第二条执行失败时 , 撤销第一条的提交 . 当第三条执行失败时 , 撤销第二条的提交 , 同时让第一条提交 :这事务怎么写 ?
查看完整描述

2 回答

已采纳
?
LIANHK

TA贡献78条经验 获得超17个赞

折返点
SAVEPOINT adqoo_1
ROLLBACK TO SAVEPOINT adqoo_1
发生在折返点 adqoo_1 之前的事务被提交,之后的被忽略


可以每一条执行后都 SAVEPOINT

-- 第一步:
insert into user1 ( id , name , pwd ) values( null , 111 , 111 );
SAVEPOINT point_1;
-- 第二步:
insert into user2 ( id , name , pwd ) values( null , 222 , 222 );
SAVEPOINT point_2;
-- 第三步:
insert into user3 ( id , name , pwd ) values( null , 333 , 333 );
SAVEPOINT point_3;

然后哪一步失败就 ROLLBACK TO SAVEPOINT XXX

如第二步失败:

ROLLBACK TO SAVEPOINT point_1;

望采纳

查看完整回答
1 反对 回复 2016-07-05
?
人笨嫌刀钝

TA贡献100条经验 获得超24个赞

begin;
insert into user1 ( id , name , pwd ) values( null , 111 , 111 ) ;
insert into user2 ( id , name , pwd ) values( null , 222 , 222 ) ;
insert into user3 ( id , name , pwd ) values( null , 333 , 333 ) ;
end;


查看完整回答
反对 回复 2016-07-03
  • 2 回答
  • 0 关注
  • 1439 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信