PostgreSQL函数更新一行的特定列

时间:2018-07-23 13:38:37

标签: postgresql sql-function sql-variant

我正在尝试创建一个函数,该函数从表中调用特定数据,但是为什么它显示列甚至在数据库上也不存在。

CREATE FUNCTION public."updateDB"(IN userid bigint DEFAULT 00000, OUT uinfo json, IN clname text DEFAULT info)
RETURNS json
LANGUAGE 'plpgsql'
AS $BODY$
BEGIN
    SELECT clname into uinfo 
    FROM public.users 
    WHERE uid = userid;
END;
$BODY$;

但是当我尝试调用它时,它显示了此error 在这里,我尝试将信息设置为默认值,以便发生此错误。如果我没有做任何默认设置,然后从代码运行该函数,它将再次显示该错误。

1 个答案:

答案 0 :(得分:1)

您需要引用文本,否则postgres认为您是在指一列

IN clname text DEFAULT 'info'