在 postgresql 中插入新行时触发更新表列?

ind*_*ndu 3 postgresql database-trigger

我想在插入新行时编写触发器来更新表。我正在使用 updatea 查询,例如

UPDATE table SET
  geom = ST_SetSRID(ST_MakePoint(longitude, latitude), 4326) 
Run Code Online (Sandbox Code Playgroud)

小智 7

您需要使用BEFORE触发器,然后分配新值:

CREATE OR REPLACE FUNCTION function_update()
  RETURNS trigger AS
$BODY$
BEGIN
    new.geom := ST_SetSRID(ST_MakePoint(new.longitude, new.latitude), 4326);
    RETURN new;
END;
$BODY$
LANGUAGE plpgsql;
Run Code Online (Sandbox Code Playgroud)

这只能在触发器中完成BEFORE

在插入之前创建触发器触发器插入
  
  开启 rdpr
  对于每一行
  执行过程 function_update();