写一个Mysql存储过程
有两个表,第一个表的数据要复制到第二个表,复制的时候要判断是否遇到错误,遇到错误就回滚,如果复制成功,就删除第一个表的数据,如果删除出错,就回滚,请问怎么写~...
有两个表,第一个表的数据要复制到第二个表,复制的时候要判断是否遇到错误,遇到错误就回滚,如果复制成功,就删除第一个表的数据,如果删除出错,就回滚,请问怎么写~
展开
2个回答
展开全部
CREATE PROCEDURE `xxxx`( )
BEGIN
#设置事务
DECLARE t_error INTEGER DEFAULT 0;
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET t_error=1;
#开启事务
START TRANSACTION;
#插入数据
INSERT INTO 表2(字段21,字段22,字段23)
SELECT 字段11,字段12,字段13 FROM 表1 where xxxx ;
#删除数据
delete 表1 where xxx;
#以上两步操作出现任何失误都将回滚
IF t_error = 1 THEN
ROLLBACK;
ELSE
COMMIT;
END IF;
end;
BEGIN
#设置事务
DECLARE t_error INTEGER DEFAULT 0;
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET t_error=1;
#开启事务
START TRANSACTION;
#插入数据
INSERT INTO 表2(字段21,字段22,字段23)
SELECT 字段11,字段12,字段13 FROM 表1 where xxxx ;
#删除数据
delete 表1 where xxx;
#以上两步操作出现任何失误都将回滚
IF t_error = 1 THEN
ROLLBACK;
ELSE
COMMIT;
END IF;
end;
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询