source

저장 프로시저는 두 행을 업데이트합니다.

manycodes 2023. 9. 28. 08:36
반응형

저장 프로시저는 두 행을 업데이트합니다.

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에 대한 행과 userid 0에 대한 행 두 개를 업데이트합니다.왜 그런지 이해가 안 돼요!

저장 프로시저를 이렇게 부릅니다 - CALL GET_USER_PNTS(1, 1, 1)

user_id 0도 업데이트 되는 이유를 알려주세요.

추신 1. MariaDB를 사용하고 있습니다. 2. UserID 0은 제가 표에 수동으로 추가한 것입니다.실제로는 0 user_id가 없습니다.그러나 그 때에도 행이 업데이트되지 말았어야 했습니다.

매개 변수 이름을 변경하십시오.

CREATE OR REPLACE PROCEDURE GET_USER_PNTS(L_USER_ID INT , L_PNTS INT, L_QNT INT)
   BEGIN
   DECLARE x  INT DEFAULT 1;
   DECLARE TEMP_GIFT_ID INT;
   UPDATE USR_PNT_SUMM SET USD_PNTS = USD_PNTS + L_PNTS WHERE USER_ID = L_USER_ID;
   COMMIT;
   END //

아마USER_ID = USER_ID사실로 취급됩니다.

언급URL : https://stackoverflow.com/questions/45907093/stored-procedure-updates-two-rows

반응형