programing

저장 프로시저가 테이블 내용을 업데이트하지 않습니다.

elecom 2023. 8. 21. 19:36
반응형

저장 프로시저가 테이블 내용을 업데이트하지 않습니다.

마리아DB 저장 프로시저로 연습을 하고 있습니다.테이블의 행을 업데이트해야 하는 간단한 저장 프로시저를 만들었지만 업데이트되지 않습니다.

USE testdb;
CREATE TABLE IF NOT EXISTS games_status (player_1 VARCHAR(30), player_2 VARCHAR(30), player_3 VARCHAR(30), player_4 VARCHAR(30), player_5 VARCHAR(30), player_6 VARCHAR(30), game_room INT);
INSERT INTO games_status (game_room) VALUE (1);

DELIMITER $$
CREATE PROCEDURE new_player(in_name VARCHAR(30), in_game_room INT)
BEGIN
    DECLARE var_player_1 VARCHAR(30);
    DECLARE var_player_2 VARCHAR(30);
    DECLARE var_player_3 VARCHAR(30);
    DECLARE var_player_4 VARCHAR(30);
    DECLARE var_player_5 VARCHAR(30);
    DECLARE var_player_6 VARCHAR(30);
    
    SELECT player_1, player_2, player_3, player_4, player_5, player_6
        INTO var_player_1, var_player_2, var_player_3, var_player_4, var_player_5, var_player_6
        FROM games_status
        WHERE game_room = in_game_room;
    
    IF var_player_1 = NULL THEN
        UPDATE games_status
        SET
            player_1 = in_name
        WHERE
            game_room = in_game_room;
    END IF;
END $$
DELIMITER ;

실행할 때

CALL new_player("Tom", 1);
SELECT * FROM games_status;

알겠습니다

+----------+----------+----------+----------+----------+----------+-----------+
| player_1 | player_2 | player_3 | player_4 | player_5 | player_6 | game_room |
+----------+----------+----------+----------+----------+----------+-----------+
| NULL     | NULL     | NULL     | NULL     | NULL     | NULL     |         1 |
+----------+----------+----------+----------+----------+----------+-----------+

그렇게player_1있는 대신에Tom아직도NULL제가 어디서 실수를 했나요?
mariadb 버전은 10.4.13입니다.
감사해요.

언급URL : https://stackoverflow.com/questions/63397429/stored-procedure-does-not-update-table-content

반응형