PostgreSQL:如果ST_Within(A,B)更新表B时更新表A中的A列

问题描述 投票:0回答:1

我正在尝试创建一个函数,在修改表B(多边形)时更新表A(点)。必须在A中更改对B的引用。我无法使其工作。

CREATE OR REPLACE FUNCTION maj_A()
    RETURNS trigger AS $foo$    
BEGIN
    UPDATE public."A" AS A
    SET A.a = B.a, 
        A.b = B.b
    FROM public.B AS B
    WHERE ST_WITHIN(A.geom, B.geom) AND NEW.geom <> OLD.geom;
    RETURN NEW;
END;

$foo$ LANGUAGE plpgsql;

我正在使用postgre 10和postgis 2.4

postgresql postgis
1个回答
0
投票

以下代码回答了我的需求。

https://gist.github.com/neogis-de/a1d08c38d8b9c5d316c7

它基于重叠多边形的修改来更新点图层。它只将多边形引用归属于基础点,而不会将任何内容更改为其中的点,而不再是该点。

© www.soinside.com 2019 - 2024. All rights reserved.