猿问

关于mysql事务的问题

假设我要执行三条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 ) ;

当第二条执行失败时 , 撤销第一条的提交 . 当第三条执行失败时 , 撤销第二条的提交 , 同时让第一条提交 :

这事务怎么写 ?


hhhzihao2
浏览 1470回答 2
2回答

LIANHK

折返点SAVEPOINT adqoo_1ROLLBACK 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;望采纳

人笨嫌刀钝

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;
随时随地看视频慕课网APP

相关分类

MySQL
我要回答