首页 > 解决方案 > 函数不起作用:错误:“删除”处或附近的语法错误

问题描述

我正在尝试在 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;

标签: sqlpostgresql

解决方案


需要注意的两件事。

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

推荐阅读