储存程序
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语句。如果第一次更新成功执行,然后第二次执行。需要进行哪些更改?
在第一个之后,UPDATE您可以检查受影响的行数ROW_COUNT()。
UPDATE
ROW_COUNT()
如果ROW_COUNT()返回的结果是所需的更新数量(可能> 0),则仅触发第二个UPDATE。
可以UPDATE通过IF - END IF检查受影响的行数来包围第二个。
IF - END IF