:
DELIMITER $$
DROP PROCEDURE IF EXISTS `test`.`handlerdemo`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `handlerdemo`()
BEGIN
DECLARE X2 INT;
DECLARE CONTINUE HANDLER FOR SQLWARNING SET X2= 1;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET X2 = 2;
DECLARE CONTINUE HANDLER FOR SQLSTATE '23000' SET X2= 3;
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET X2 = 4;
INICIAR TRANSAÇÃO;
SAVEPOINT savepoint_1;
COMECE
A INSERIR EM VALORES eugene (1);
INSERIR EM VALORES eugene (2);
SELECIONE X2;
fim;
ROLLBACK PARA SAVEPOINT savepoint_1;
INSERIR EM VALORES eugene (3);
END$$
DELIMITOR ;
#测试表
CREATE TABLE `eugene` (
t1` int(4) default NULL
)