我试图在MYSQL中的存储过程中对不同的表进行多次更新。但是,如果其中一个更新未找到ID,则会发出警告或错误。
所以我想使用IF ELSE,但我不知道如何制作它。
这是存储过程中代码的示例
be is an entrie parameter.
update table1 set status = 2 where id_be = be;
update table2 set status = 2 where id_be = be;
update table3 set status = 2 where id_be = be;
update table4 set status = 2 where id_be = be;
update table5 set status = 2 where id_be = be;
update table6 set status = 2 where id_be = be;
update table7 set status = 2 where id_be = be;
update table8 set status = 2 where id_be = be;
update table9 set status = 2 where id_be = be;
所以,如果第一次更新成功或者为真,我需要保留de存储过程,如果没有,则继续执行另一次更新。
我希望你能帮助我。感谢!!!
答案 0 :(得分:0)
因此适用于5个表格。你可以扩展它。
DELIMITER ;;
CREATE DEFINER=`root`@`127.0.0.1` PROCEDURE `setup`(IN be CHAR(200))
BEGIN
DECLARE countRow INT;
UPDATE table1 SET STATUS=2 WHERE id_be = be;
SET countRow = ROW_COUNT();
IF(countRow = 0) THEN
UPDATE table2 SET STATUS=2 WHERE id_be = be;
END IF;
SET countRow = ROW_COUNT();
IF(countRow = 0) THEN
UPDATE table3 SET STATUS=2 WHERE id_be = be;
END IF;
SET countRow = ROW_COUNT();
IF(countRow = 0) THEN
UPDATE table4 SET STATUS=2 WHERE id_be = be;
END IF;
SET countRow = ROW_COUNT();
IF(countRow = 0) THEN
UPDATE table5 SET STATUS=2 WHERE id_be = be;
END IF;
END;;
DELIMITER ;
致电:
CALL setup('xx');