欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Mysql事物

程序员文章站 2024-01-13 15:22:58
...

以前写的是 sql server,对mysql事物的写法不是很清楚,现整理了一个例子

delimiter //
/*
CALL sp_TranTest('0');
*/
DROP PROCEDURE IF EXISTS sp_TranTest;
CREATE PROCEDURE sp_TranTest(
inDD VARCHAR(20)
)
NOT DETERMINISTIC-- DETERMINISTIC:表示存储过程对同样的输入参数产生相同的结果;NOT DETERMINISTIC,则表示会产生不确定的结果(默认)
SQL SECURITY DEFINER
COMMENT'测试事物'
Begin

	declare _err int default 0;
	-- 是事先定义程序执行过程中可能遇到的问题。并且可以在处理程序中定义解决这些问题的办法。这种方式可以提前预测可能出现的问题,并提出解决方法。
	DECLARE CONTINUE HANDLER FOR SQLEXCEPTION,SQLWARNING,NOT FOUND set _err=1;

	start transaction	 ;

	INSERT INTO TranTestTable(DD)
	VALUES('00');

	if(inDD='0') THEN
		SIGNAL SQLSTATE 'HY000' SET MESSAGE_TEXT = '错误';
	END IF;
	
	-- rollback;
	IF(_err=1) THEN
		rollback;
	ELSE
		commit;
	END IF;
END
//
delimiter ;

 

 

上一篇: java基础第七篇之接口

下一篇: