错误:还原数据库时,“ FUNCTION”处或附近的语法错误

问题描述

从转储还原数据库时出现错误。什么意思?

ERROR:  Syntax error at or near "FUNCTION"
LINE 1: ...LETE ON public.currency_rate FOR EACH ROW EXECUTE FUNCTION p...


--
-- Name: currency_rate currency_rate_bt_delete; Type: TRIGGER; Schema: public; Owner: -
--

CREATE TRIGGER currency_rate_bt_delete 
INSTEAD OF DELETE ON public.currency_rate 
FOR EACH ROW 
EXECUTE FUNCTION public.currency_rate_bt_delete();

解决方法

转储/还原的问题是您使用PostgreSQL v13创建转储时会生成您显示的转储。

但是您随后尝试在不了解该转储的PostgreSQL v10上恢复该转储

,

您必须在PROCEDURE之前使用FUNCTION而不是public.currency_rate_bt_delete() 您的触发器查询应如下所示:

CREATE TRIGGER currency_rate_bt_delete 
INSTEAD OF DELETE ON public.currency_rate 
FOR EACH ROW 
EXECUTE PROCEDURE public.currency_rate_bt_delete();       

注意:-此答案仅限于问题中提到的错误。