I doing practice with MariaDB stored procedures. I created a simple stored procedure that should update a row in a table, but it does not update it.
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 ;
When I run
CALL new_player("Tom", 1);
SELECT * FROM games_status;
I get
+----------+----------+----------+----------+----------+----------+-----------+
| player_1 | player_2 | player_3 | player_4 | player_5 | player_6 | game_room |
+----------+----------+----------+----------+----------+----------+-----------+
| NULL | NULL | NULL | NULL | NULL | NULL | 1 |
+----------+----------+----------+----------+----------+----------+-----------+
So player_1
instead of being Tom
, is still NULL
. Where did I make a mistake?
mariadb version is 10.4.13
Thank you