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