如何解决PL/pgSQL 函数允许插入到连接多个表的视图 (PostgreSQL 13)
我有三个表和一个视图,名为“trees”,连接三个表。
我有一个 PL/pgSQL 函数,它允许将数据插入到“树”视图中
如何在 PL/pgSQL 中准确地写一些类似 when (if) 属性没有插入(指定)的东西,在函数中跳过一些步骤(操作)。
编辑:找到解决方案:
IF attribute1 IS NOT NULL AND attribute2 IS NOT NULL THEN ...
解决方法
正如 Laurenz 指出的,您可以使用 IF
来做到这一点:
IF (new.latitude IS NOT NULL AND new.longtitude IS NOT NULL) THEN
INSERT INTO tree_location (latitude,longtitude,geom,site_code,tree_id)
VALUES (new.latitude,new.longtitude,'SRID=4326;POINT('||NEW.longtitude::text||' '||NEW.latitude::text||')',new.site_code,new.tree_id);
END IF;
您也可以使用 INSERT . . . SELECT
执行此操作,因此不需要 IF
:
INSERT INTO tree_location (latitude,tree_id)
SELECT new.latitude,new.tree_id
WHERE new.latitude IS NOT NULL AND new.longitude IS NOT NULL;
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。