如何对每一行进行查询转换?

时间:2019-02-14 18:41:43

标签: sql postgresql

我有一个查询,该查询从最后一行的一列中获取GeoJSON值,该值被转换为几何图形,并使用此新值更新同一行中的另一列。

UPDATE table-name 
SET geometria = (SELECT ST_GeomFromText(
         ST_AsText(
           CAST(ST_GeomFromGeoJSON(t1.column-name) AS TEXT)
         ), 4326
       )
FROM (SELECT column-name
      FROM table-name
      ORDER BY id DESC
      LIMIT 1) AS t1)
WHERE id IN(SELECT id
      FROM table-name
      ORDER BY id DESC
      LIMIT 1
);

现在我只插入最后一行,如何将这个查询与触发器配合使用,以用于每行查询?

1 个答案:

答案 0 :(得分:0)

为什么不使用简单的sintax:

UPDATE table-name 
SET geometria = (SELECT ST_GeomFromText( ST_AsText( CAST(ST_GeomFromGeoJSON(column-name) AS TEXT) ), 4326 )

因此,您可以使用某些功能更新每个列