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 ;
上記のストアドプロシージャは2つの行を更新します.1つはuser_id = 1、もう1つはuserid0です。理由はわかりません! CALLのGET_USER_PNTSを(1、1、1)ストアドプロシージャは2行を更新します
user_idの0も更新なっている理由を私に知らせてください -
は、これは私がストアドプロシージャを呼び出す方法です。
P.S 1.私はMariaDBを使用しています。 2. UserID 0は、私が手動でテーブルに追加したものです。 praticeには0 user_idはありません。しかし、それでも行は更新されるべきではありません。
実際の例では、 'UPDATE USR_PNT_SUMM SET USD_PNTS = USD_PNTS + PNTS WHERE USER_ID = 1; 'が適切なパラメータをハードコードしていないと思います。 – lad2025
ユーザーID 1の行のみが更新されるようにUSER_IDを1に設定します。しかし、私はまだ他の行が更新されて参照してください。 – user3276247