次の例のようになります。
DELIMITER $$
DROP PROCEDURE IF EXISTS `test`.`handlerdemo`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `handlerdemo`()
BEGIN
DECLARE X2 INT;
SQLWARNING SET X2= 1 の継続ハンドラーを宣言します。
見つからないセット X2 = 2 に対する継続ハンドラーを宣言します。
SQLSTATE '23000' SET X2= 3 の継続ハンドラーを宣言します。
SQLEXCEPTION SET X2 = 4 の継続ハンドラーを宣言します。
トランザクションを開始します。
セーブポイントセーブポイント_1;
BEGIN
INSERT INTO eugene VALUES (1);
ユージーン値に挿入 (2);
X2を選択します。
終わり;
セーブポイントへのロールバック savepoint_1;
ユージーン値に挿入 (3);
END$$
区切り文字 ;
#表
CREATE TABLE `eugene` (
t1` int(4) default NULL
)