0

存储过程

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$$

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

4

2 回答 2

2

在第一个之后,UPDATE您可以检查受ROW_COUNT().

如果ROW_COUNT()返回所需的更新次数(可能 > 0),则只触发 second UPDATE

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

于 2012-05-31T11:43:47.837 回答
0

用于SELECT ROW_COUNT();确定是否有任何行受到影响。如果计数大于零或等于预期的行数,则更新成功。

于 2012-05-31T11:43:23.993 回答