MySQL儲存過程SAVEPOINT ROLLBACK to

season0891發表於2013-04-11

以下為引用的內容:

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 ;


#測試表

CREATE TABLE `eugene` (

t1` int(4) default NULL

)

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/90618/viewspace-758276/,如需轉載,請註明出處,否則將追究法律責任。

相關文章