DROP PROCEDURE IF EXISTS repair_order_brokerage_pay; CREATE PROCEDURE repair_order_brokerage_pay() BEGIN DECLARE error INTEGER DEFAULT 0; DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET error=1; START TRANSACTION; /*******order_id=122*******/ /*修改订单售后服务状态,修改后会在下次定时任务时自动发放*/ UPDATE `xm_orders` SET `is_service_over`='0' WHERE (`id`='122') LIMIT 1; /*已经执行了销量增加,把增加的销量重新减去,新版本代码将会修改这一做法,用户不发奖励将不修改售后状态和销量*/ UPDATE `xm_goods` SET `sales_volume`=sales_volume-2 WHERE (`id`='17') LIMIT 1; UPDATE `xm_goods` SET `sales_volume`=sales_volume-1 WHERE (`id`='16') LIMIT 1; UPDATE `xm_goods` SET `sales_volume`=sales_volume-1 WHERE (`id`='14') LIMIT 1; IF error = 1 THEN ROLLBACK; ELSE COMMIT; END IF; select error; END; #执行 CALL repair_order_brokerage_pay();