我无法创建此函数,因为我在第 6 行 中遇到 INTEGER 附近的语法错误。我在这里遗漏了什么吗?
CREATE OR REPLACE FUNCTION public.update_application_status_by_token(applicationToken integer, userId integer, newStatus data.applicationstatus)
RETURNS BOOLEAN
LANGUAGE sql
AS $function$
DECLARE
applicationId INTEGER;
BEGIN
SELECT id INTO applicationId FROM data.listings_applications WHERE token = applicationToken;
INSERT INTO public.listings_applications_status(application_id, user_id, status) VALUES (applicationId, userId, newStatus);
UPDATE public.listings_applications SET status = newStatus WHERE token=applicationToken;
RETURN TRUE;
EXCEPTION WHEN OTHERS THEN
RETURN FALSE;
END;
$function$
最佳答案
这是一个 PL/pgSQL 函数,所以你必须这样声明它。
使用
LANGUAGE plpgsql
而不是
LANGUAGE sql
关于sql - DECLARE 子句中的 PostgreSQL 函数语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40907152/