我的程序是这样的:
self.contentId = String(value)
我的问题是'sp_myProc'实际上需要3个参数,并且在我知道这个之前的测试期间,即使内部proc甚至没有启动,事务也在工作。交易提交很奇怪,但我仍然得到DECLARE EXIT HANDLER FOR SQLEXCEPTION
BEGIN
select varerrmsg as ErrorMsg;
ROLLBACK;
END;
START TRANSACTION;
SELECT ...
INSERT ...
UPDATE ...
INSERT ...
(basically serveral statements)
CALL sp_myProc (param1, param2);
COMMIT;
结果告诉我处理程序正在触发,但没有回滚。
我的问题是:为什么?
答案 0 :(得分:0)
这是我在我的存储过程中使用的一个对我有用的交易。
DECLARE exit handler for sqlexception
BEGIN
-- ERROR
SHOW ERRORS;
ROLLBACK;
END;
DECLARE exit handler for sqlwarning
BEGIN
-- WARNING
SHOW WARNINGS;
ROLLBACK;
END;
更多信息可以在这里找到
http://www.xpertdeveloper.com/2012/06/transaction-mysql-stored-procedure/ https://dev.mysql.com/doc/refman/5.7/en/get-diagnostics.html