我的存储过程的基本结构是
BEGIN .. Declare statements .. START TRANSACTION; .. Query 1 .. .. Query 2 .. .. Query 3 .. COMMIT; END
MySQL版本: 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;