现在的位置: 首页 > 综合 > 正文

MySQL 事物回滚Demo

2018年04月02日 ⁄ 综合 ⁄ 共 461字 ⁄ 字号 评论关闭
CREATE PROCEDURE sp_ee()
	BEGIN
	#--------------------
	#SQLEXCEPTION 对应存储过程执行中所有异常
	#@Auth:lzw
	#@time:2014/8/21
	#--------------------
	#标志是否出错
	DECLARE errno TINYINT DEFAULT '0';
	#如sql异常,将errno设置为1且后续执行退出
	DECLARE CONTINUE HANDLER FOR SQLEXCEPTION BEGIN ROLLBACK;SET errno = 1; END;

	#开启事务
	START TRANSACTION;
	INSERT INTO tb_mv(name,url)VALUES('1','1'),('2','2'),('3','3'); #执行
	INSERT INTO  tb_mv VALUES(1,'wwwww','222','222',1);##id为1,违反主键约束
	#errno为1,事务回滚sql

	SELECT errno;

END;

##执行存储过程
CALL sp_ee();

如果有更好的回滚机制,请分享

抱歉!评论已关闭.