MySQL存储过程SAVEPOINT ROLLBACK to
示例如下:
SQL代码
- 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;
-
- START TRANSACTION;
-
- SAVEPOINT savepoint_1;
-
- BEGIN
-
- INSERT INTO eugene VALUES (1);
-
- INSERT INTO eugene VALUES (2);
-
- SELECT X2;
-
- end;
-
- ROLLBACK TO SAVEPOINT savepoint_1;
-
- iNSERT INTO eugene VALUES (3);
-
- END$$
-
-
- DELIMITER ;
#测试表
SQL代码
- CREATE TABLE `eugene` (
-
- t1` int(4) default NULL
-
- )