我创建了一个函数。首先我声明了一个变量当结果返回时我想返回变量结果但是我得到一个错误。我怎么解决?
错误
错误:列"存在用户"不存在
CREATE OR REPLACE FUNCTION savepromotionadmin(
IN p_first_name character varying,
IN p_last_name character varying,
IN p_gsm character varying,
IN p_email character varying,
IN p_password character varying,
IN p_level smallint)
RETURNS text AS
$BODY$
DECLARE
result text;
p_user_id bigint=(select id from user where email=p_email and gsm=p_gsm);
p_check_user bigint=(select id from promotion_admin where email=p_email and gsm=p_gsm);
BEGIN
IF p_user_id is not null THEN
IF p_check_user is null THEN
insert into promotion_admin(user_id, first_name, last_name, gsm, email, level, password)
values(p_user_id, p_first_name, p_last_name, p_gsm, p_email, p_level, md5(p_password));
IF found THEN
result:="added";
return result;
ELSE
result:="error";
return result;
END IF;
ELSE
result:="exist-user";
return result;
END IF;
ELSE
result:="error";
return result;
END IF;
END;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 1000;
答案 0 :(得分:1)
将数据分配给变量时,使用引号文字符号'
。引号缩进符号"
用于指定数据库对象的名称,例如数据库名称,表名称,列名称。
因此,代码result:="exist-user"
会将列exist-user
的数据分配给变量result
,当然该列不存在。
您可以阅读更多here
答案 1 :(得分:0)
"
仅适用于对象名称(表格,列等),对于您必须使用的文字'
将result:="added";
更改为result:='added';
,一切正常