我的存储过程的基本结构是,
BEGIN
.. Declare statements ..
START TRANSACTION;
.. Query 1 ..
.. Query 2 ..
.. Query 3 ..
COMMIT;
END
MySQL version: 5.1.61-0ubuntu0.11.10.1-log
目前,如果“查询 2”失败,则提交“查询 1”的结果。
- 如果任何查询失败,我如何回滚事务?
最佳答案
看看http://dev.mysql.com/doc/refman/5.0/en/declare-handler.html
基本上,您声明将调用回滚的错误处理程序
START TRANSACTION;
DECLARE EXIT HANDLER FOR SQLEXCEPTION
BEGIN
ROLLBACK;
EXIT PROCEDURE;
END;
COMMIT;
关于MySQL : transaction within a stored procedure,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9974325/