MySQL 的异常与事务结合的使用方法。并带自动回滚!
DELIMITER $$
DROP PROCEDURE IF EXISTS test_sp1 $$
CREATE PROCEDURE test_sp1(i INT)
BEGIN
DECLARE t_error INTEGER DEFAULT 0;DECLARE CONTINUE HANDLER FOR SQLEXCEPTION,SQLWARNING,NOT FOUND SET t_error=1; START TRANSACTION;
INSERT INTO `test`.`aaa`(`a`,`b`,`c`,`d`)VALUES ('1','2','3','4');
INSERT INTO `test`.`aaa`(`a`,`b`,`c`,`d`)VALUES ('1','2','3',i);
IF t_error = 1 THEN ROLLBACK; ELSE COMMIT; END IF;
END$$
DELIMITER ;