今天在做MYSQL 存储过程 多表更新的功能 多表更新时候注意事项
1、首先是确保多表更新能够一次执行,途中没有哪个表的sql语句错误
2、上线后修改表结构及字段,请注意检查是否影响mysql 过程和函数
下面列举下我在做多表更新的方式:
刚开始考虑的第一种方法:(不建议)
BEGIN DECLARE EXIT HANDLER FOR SQLEXCEPTION SELECT 0 INTO rtn; BEGIN --执行的sql --执行的sql --执行的sql #如果这个报错了 上面的sql已经执行了 END; SET rtn = 1; END
第二种方式:(本人建议)
BEGIN DECLARE EXIT HANDLER FOR SQLEXCEPTION ROLLBACK; SET rtn = 0; START TRANSACTION; --执行的sql --执行的sql --执行的sql #如果这个报错了 上面的sql还是没有执行的 COMMIT; SET rtn = 1; END
最后说明:我建的过程有IN和OUT参数的,这个因需求而定哦!