首页 > 解决方案 > PostgreSQL 函数更新行的特定列

问题描述

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

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$;

但是当我尝试调用它时,它会在此处显示此错误 ,我尝试将信息设为默认值,因此会发生此错误。如果我没有做任何默认设置并从代码运行该函数,它会再次显示该错误。

标签: postgresqlsql-functionsql-variant

解决方案


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

IN clname text DEFAULT 'info'

推荐阅读