小编典典

如果第一次更新成功执行,则执行第二次更新

sql

储存程序

CREATE DEFINER=`root`@`localhost` PROCEDURE `Sample`(IN itemId INT, IN itemQnty 
DOUBLE, IN invID INT)

BEGIN

DECLARE crntQnty DOUBLE;
DECLARE nwQnty DOUBLE;

SET crntQnty=(SELECT `QuantityOnHand` FROM `item` WHERE id=itemId);
SET nwQnty=itemQnty+crntQnty;
UPDATE `item` SET `QuantityOnHand`=nwQnty WHERE `Id`=itemId;

UPDATE `inventoryentry` SET `Status` = 1 WHERE `InventoryID`=invID AND 
`ItemID`=itemId;


END$$

在此存储过程中,我有两个update语句。如果第一次更新成功执行,然后第二次执行。需要进行哪些更改?


阅读 221

收藏
2021-04-14

共1个答案

小编典典

在第一个之后,UPDATE您可以检查受影响的行数ROW_COUNT()

如果ROW_COUNT()返回的结果是所需的更新数量(可能> 0),则仅触发第二个UPDATE

可以UPDATE通过IF - END IF检查受影响的行数来包围第二个。

2021-04-14