【发布时间】:2022-12-13 23:18:31
【问题描述】:
我是 Postgresql 14 的新手;我正在尝试在表上创建一个触发器,每次通过 INSERT / UPDATE / DELETE 修改表时都会创建一个视图。应用触发器后,我在尝试更新/插入/删除表中的任何内容时收到此错误:
错误:控制已到达触发过程的末尾,没有返回; 上下文:PL/pgSQL 函数 createmyview(); SQL 状态:2F005
我假设我的触发功能丢失了一些东西......
这是我的触发功能:
CREATE FUNCTION createmyVIEW() RETURNS trigger AS $$ BEGIN DROP VIEW IF EXISTS public.myVIEW; CREATE VIEW public.myVIEW AS SELECT * FROM data.mytable; END $$ LANGUAGE 'plpgsql' SECURITY DEFINER;应用触发器:
CREATE TRIGGER syncView AFTER INSERT OR UPDATE OR DELETE ON data.mytable FOR EACH STATEMENT EXECUTE PROCEDURE createmyView();
【问题讨论】:
-
为什么要在每次数据更改时重新创建视图?修改时,视图将自动反映基础表中的更改。
-
你是对的!我不知道那...谢谢
标签: sql postgresql postgresql-14