如何使用plpgsql覆盖插入时新记录的'not null'字段?

时间:2019-01-22 17:41:28

标签: postgresql postgis plpgsql

我的数据库中有两个带有几何列的表。

字段存储具有与各个字段相关的常规信息的面,第二个表存储属于这些字段的面。

将新记录插入第二张表时,我想使用 PL / PGSQL 中编写的触发函数,根据字段中的信息填充记录新记录/形状所属的字段。

我能够以这种方式输入 field_id ,可以从 fields 中正确查找,但是其他字段仍然是我输入的默认值。 我认为我的错误出现在条件语句的后半部分:

IF
    (SELECT COUNT(*)
     FROM
       (SELECT id
        FROM fields
         WHERE st_intersects(NEW.geom, fields.geom)) AS foo) > 0
THEN
    SELECT field_id,field_name,field_accessdate
    INTO NEW.field_id,NEW.field_name,NEW.access_date
    FROM (SELECT geom,field_id FROM fields) AS bar
    WHERE st_intersects(NEW.geom, bar.geom);
    RETURN NEW;  
END IF;

field_id field_name field_accessdate 应该与该字段匹配,但是目前只有 field_id 匹配,另外两个字段包含我的导入代码(“ tmp”,“ 1111-11-11”)提供的临时字符串。

0 个答案:

没有答案