不知道这是否可能,但我得到一个奇怪的错误在我的查询结束。知道为什么吗?
代码如下:
CREATE OR REPLACE PROCEDURE NewUser (g_name VARCHAR, f_name VARCHAR, u_password VARCHAR, u_email VARCHAR, u_dob DATE, p_name VARCHAR, team_id INT)
LANGUAGE plpgsql
AS $$
DECLARE s_user_id INT;
DECLARE p_user_id INT;
BEGIN
IF p_name = NULL AND team_id = NULL THEN
s_user_id = (SELECT MAX(user_id) FROM spectator) + 1;
INSERT INTO spectator (user_id, given_name, family_name, password, email, date_of_birth)
VALUES (s_user_id, g_name, f_name, u_password, u_email, u_dob);
ELSE
p_user_id = (SELECT MAX(user_id) FROM player) + 1;
INSERT INTO player (user_id, given_name, family_name, password, email, date_of_birth, player_name, team_id)
VALUES (p_user_id, g_name, f_name, u_password, u_email, u_dob, u_name, team_id);
END;
$$;
错误:语法错误在“;”处或附近第15行:结束;^sql状态:42601字符:727
1条答案
按热度按时间hrysbysz1#
你需要终止
IF
对账单END IF;
. 同时检查变量NULL
,你需要IS NULL
而不是= NULL
.如果正确缩进代码,这种类型的错误更容易发现。