mysql实现事务的提交和回滚实例
2014-06-17 18:01
781 查看
mysql创建存储过程的官方语法为:
复制代码 代码如下:START TRANSACTION | BEGIN [WORK]
COMMIT [WORK] [AND [NO] CHAIN] [[NO] RELEASE]
ROLLBACK [WORK] [AND [NO] CHAIN] [[NO] RELEASE]
SET AUTOCOMMIT = {0 | 1}
我这里要说明的mysql事务处理多个SQL语句的回滚情况。比如说在一个存储过程中启动一个事务,这个事务同时往三个表中插入数据,每插完一张表需要判断其是否操作成功,如果不成功则需要回滚,最后一张表判断其插入成功之后commit。这里需要注意的是不能直接使用事务的collback,这样是不能实现回滚的或者说可能出现意外的错误。
那么我们需要的是一个条件判断,比如loop,因为MySql默认是会自动提交的,所以我们不用担心rollback之后条件退出而没有commit。
具体mysql语句如下:
复制代码 代码如下:begin
loop_lable: loop
start transaction;
insert into table1(f_user_id) values(user_id);
if row_count() < 1 then
set @ret = -1;
rollback;
leave loop_label;
end if;
insert into table2(f_user_id) values(user_id);
if row_count() < 1 then
set @ret = -1;
rollback;
leave loop_label;
end if;
insert into table3(f_user_id) values(user_id);
if row_count() < 1 then
set @ret = -1;
rollback;
leave loop_label;
else
set @ret = 0;
commit;
leave loop_label;
end if;
end loop;
select @ret;
end
您可能感兴趣的文章:
相关文章推荐
- mysql实现事务的提交和回滚实例
- 如何在mysql下实现事务的提交与回滚
- MySql使用存储过程实现事务的提交或者回滚
- 解析php mysql 事务处理回滚操作(附实例)
- php+mysqli事务控制实现银行转账实例
- 消息服务框架(MSF)应用实例之分布式事务三阶段提交协议的实现
- 另外一个实现事务提交、回滚的方法
- mysql事务的提交和回滚
- MySQL事务回滚rollback与提交commit的操作
- NodeJs使用Mysql模块实现事务处理实例
- mysql事务回滚实例
- c++ mysql事务提交及回滚
- mysql事务的提交和回滚
- 终极办法:解决spring mvc+mysql+mybatis事务不提交不回滚的问题
- 解析php mysql 事务处理回滚操作(附实例)
- MySQL客户端、服务器端工具、sql_mode、存储引擎修改、事务的提交和回滚、隔离级别
- 解析php mysql 事务处理回滚操作(附实例)
- 对mysql事务提交、回滚的错误理解
- JDBC03 利用JDBC实现事务提交与回滚【调用Connection中的方法实现事务管理】
- mysql 事务的提交和回滚