【发布时间】:2014-12-07 21:39:36
【问题描述】:
我正在尝试编写一个存储过程,它将首先打印错误消息然后回滚
我试过了,但是这个不起作用
我可以回滚它,但如果出现错误,它不会打印错误消息
DELIMITER
CREATE PROCEDURE transaction_sp ()
BEGIN
DECLARE exit handler for sqlexception
BEGIN
-- ERROR
--------------------------------------------------------------------------------------
select "error message '%s' and errorno '%d'"------- this part in not working
--------------------------------------------------------------------------------------
ROLLBACK;
END;
DECLARE exit handler for sqlwarning
BEGIN
-- WARNING
--------------------------------------------------------------------------------------
select "warning message '%s' and errorno '%d'"------- this part in not working
--------------------------------------------------------------------------------------
ROLLBACK;
END;
START TRANSACTION;
-- ADD option 5
INSERT INTO product_option(product_id,option_id,required) VALUES(insertedProductID,5,0);
SET poid = (SELECT LAST_INSERT_ID());
INSERT INTO product_option_value(product_option_id,product_id,option_id,option_value_id,quantity,subtract,price,pr ice_prefix,points,points_prefix,weight,weight_prefix) VALUES(poid,insertedProductID,5,50,0,0,4.99,'+',0,'+',0,'+');
-- ADD option 12
INSERT INTO product_option(product_id,option_id,required) VALUES(insertedProductID,12,1);
-- ADD option 13
INSERT INTO product_option(product_id,option_id,required) VALUES(insertedProductID,13,0);
COMMIT;
END
$$
那么我怎样才能用这个存储过程来实现它
【问题讨论】: