1
DELIMITER //
CREATE OR REPLACE PROCEDURE GET_USER_PNTS(USER_ID INT , PNTS INT, QNT INT)
BEGIN
DECLARE x INT DEFAULT 1;
DECLARE TEMP_GIFT_ID INT;
UPDATE USR_PNT_SUMM SET USD_PNTS = USD_PNTS + PNTS WHERE USER_ID = 1;
COMMIT;
END //
DELIMITER ;
上面的存储过程更新两行 - 一个用于USER_ID = 1,另一种为用户标识0。我不明白为什么!存储过程更新两行
这是我如何调用存储过程 - CALL GET_USER_PNTS(1,1,1)
请让我知道为什么USER_ID 0也得到更新。
P.S 1.我正在使用MariaDB。 2. UserID 0是我在表中手动添加的。在实践中不会有任何0 user_id。但即使如此,该行也不应该被更新。
我想在实际的例子中,你没有硬编码'UPDATE USR_PNT_SUMM SET USD_PNTS = USD_PNTS + PNTS WHERE USER_ID = 1;'但是正确的参数。 – lad2025
我将USER_ID设置为1,以确保只有用户标识1的行得到更新。但我仍然看到其他行得到更新。 – user3276247