函数不起作用:错误:“ DELETE”或附近的语法错误

时间:2019-07-28 00:01:09

标签: sql postgresql

我正在尝试在Postgres中创建一个函数。出于某种原因,当我从查询工具中运行查询时,查询效果很好。将查询添加到函数中后,出现错误

  

错误:“删除”处或附近的语法错误

不确定是什么问题。

CREATE FUNCTION public.remove_email_header()
    RETURNS pg_trigger
    LANGUAGE 'plpgsql'

AS $BODY$
DELETE FROM public.spam_dictionary WHERE words LIKE '%FROM%';
$BODY$;

ALTER FUNCTION public.remove_email_header()
    OWNER TO postgres;

1 个答案:

答案 0 :(得分:1)

需要注意的两件事。

plpgsql Postgres函数使用BEGIN END

不应将plpgsql引起来。

CREATE FUNCTION remove_email_header()
    RETURNS trigger
    LANGUAGE plpgsql

AS $BODY$
BEGIN
DELETE FROM public.spam_dictionary WHERE words LIKE '%FROM%';
END 
$BODY$;