반응형
저장 프로시저가 테이블 내용을 업데이트하지 않습니다.
마리아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
반응형
'programing' 카테고리의 다른 글
| json/array를 ajax responseText에서 javascript 배열로 변환하는 방법은 무엇입니까? (0) | 2023.08.21 |
|---|---|
| 왼쪽과 오른쪽 쉬프트를 한 표현에 함께 사용하면 차이가 나는 이유는 무엇입니까? (0) | 2023.08.21 |
| MethodArgumentNotValidException을 올바르게 던지는 방법 (0) | 2023.08.21 |
| jdbc Timestamp 또는 Date를 사용할 때 Oracle과 무시할 수 없는 실행 계획 차이 (0) | 2023.08.21 |
| 값을 기준으로 2차원 배열을 필터링하는 방법 (0) | 2023.08.21 |