您可以使用13.6.7.2。DECLARE …
HANDLER语法以下列方式:
DELIMITER $$CREATE PROCEDURE `sp_fail`()BEGIN DECLARE `_rollback` BOOL DEFAULT 0; DECLARE ConTINUE HANDLER FOR SQLEXCEPTION SET `_rollback` = 1; START TRANSACTION; INSERT INTO `tablea` (`date`) VALUES (NOW()); INSERT INTO `tableb` (`date`) VALUES (NOW()); INSERT INTO `tablec` (`date`) VALUES (NOW()); -- FAIL IF `_rollback` THEN ROLLBACK; ELSE COMMIT; END IF;END$$DELIMITER ;
有关完整的示例,请检查以下SQL Fiddle。



