醉卧山林的执刀人 2017-09-27 08:20 采纳率: 0%
浏览 3514
已结题

mysql 异常处理 CONTINUE HANDLER FOR SQLEXCEPTION

一个存储过程,循环表数据,遇到异常回滚,如果插入发生错误,删除还能正常执行,不能回滚
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION 不能回滚吗
DELIMITER $$

DROP PROCEDURE IF EXISTS test$$

CREATE DEFINER=ydkj@% PROCEDURE test()
BEGIN
DECLARE done INT ;
DECLARE order_id BIGINT ;
DECLARE order_cursor CURSOR FOR
SELECT
id
FROM
order_info a
WHERE a.DEL_FLAG = '1'
OR a.STATUS = '99' ;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1 ;
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION
BEGIN
ROLLBACK;
COMMIT ;
END ;
OPEN order_cursor ;
-- 循环
order_loop :
LOOP
-- 取游标中的数据
FETCH order_cursor INTO order_id ;
IF done = 1
THEN LEAVE order_loop ;
END IF ;

START TRANSACTION ;

INSERT INTO _order SELECT NOW(),a.* FROM order_ext a WHERE a.order_id = order_id ;
 DELETE FROM t_cargo_order_info WHERE id = cargo_order_id ;

COMMIT;
END LOOP ;
CLOSE order_cursor ;
END$$

DELIMITER ;

  • 写回答

1条回答 默认 最新

  • threenewbee 2017-09-27 14:13
    关注
    评论

报告相同问题?

悬赏问题

  • ¥15 HLs设计手写数字识别程序编译通不过
  • ¥15 Stata外部命令安装问题求帮助!
  • ¥15 从键盘随机输入A-H中的一串字符串,用七段数码管方法进行绘制。提交代码及运行截图。
  • ¥15 TYPCE母转母,插入认方向
  • ¥15 如何用python向钉钉机器人发送可以放大的图片?
  • ¥15 matlab(相关搜索:紧聚焦)
  • ¥15 基于51单片机的厨房煤气泄露检测报警系统设计
  • ¥15 Arduino无法同时连接多个hx711模块,如何解决?
  • ¥50 需求一个up主付费课程
  • ¥20 模型在y分布之外的数据上预测能力不好如何解决