sql - 函数不起作用:错误:“删除”处或附近的语法错误
问题描述
我正在尝试在 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;
解决方案
需要注意的两件事。
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$;
推荐阅读
- python - 如何获取 AAD 用户的 GraphUserPrincipalNameCreationContext?
- python - 如何在 Turtle Graphics 中使用 jpg 文件?
- python - Django调用存储过程,事务未提交或执行失败
- javascript - 如何启用和禁用选项卡窗格输入元素
- windows-10 - Visual Studio 2019 Team Explorer 另一个用于构建的浏览器
- java - 从内部存储播放音频文件的应用程序,Android Studio (JAVA)
- objective-c - GCDAsyncUdpSocket 接收到的数据与android不同。有什么需要改变的吗?像子网掩码之类的?
- c - 何时将联合嵌套在结构内作为设计选择
- vue-router - 为什么vue router会重新加载组件,当这个组件是一样的,但是目标路由是在另一个children级别定义的?
- bash - printf 正在“吃掉”反斜杠。如何保存它们?