ERROR: syntax error at or near "FUNCTION" while db restoring
ERROR: syntax error at or near "FUNCTION" while db restoring
我在从转储中恢复数据库时出错。这是什么意思?
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();
您必须在 public.currency_rate_bt_delete()
之前使用 PROCEDURE
而不是 FUNCTION
您的触发查询应如下所示:
CREATE TRIGGER currency_rate_bt_delete
INSTEAD OF DELETE ON public.currency_rate
FOR EACH ROW
EXECUTE PROCEDURE public.currency_rate_bt_delete();
注意:- 此答案仅限于问题中提到的错误。
您的 dump/restore 的问题是您使用 PostgreSQL v13 创建转储它生成了您显示的转储。
但随后您尝试在不理解该转储的 PostgreSQL v10 上恢复该转储
我在从转储中恢复数据库时出错。这是什么意思?
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();
您必须在 public.currency_rate_bt_delete()
之前使用 PROCEDURE
而不是 FUNCTION
您的触发查询应如下所示:
CREATE TRIGGER currency_rate_bt_delete
INSTEAD OF DELETE ON public.currency_rate
FOR EACH ROW
EXECUTE PROCEDURE public.currency_rate_bt_delete();
注意:- 此答案仅限于问题中提到的错误。
您的 dump/restore 的问题是您使用 PostgreSQL v13 创建转储它生成了您显示的转储。
但随后您尝试在不理解该转储的 PostgreSQL v10 上恢复该转储