如何使用演员表的价值进行更新?

How to make a update with value from a cast?

我有一个 INSERT INTO 查询,它从 html 表单中获取输入并将其插入到 postgres 的 table 中,其中一个列的值是 GeoJSON。现在我正在尝试准备一个触发函数,它在 INSERT 查询之后采用 json 并将其转换为几何图形并将此几何图形插入同一 table.[=13 的另一列中=]

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;

通过此查询,我从插入的最后一行中获取 GeoJSON 并将其转换为几何图形,但我不知道如何将此几何图形值插入另一列。

我想出了一个解决我问题的查询:

UPDATE table-name SET column-name = (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 );

通过这个查询,我在 table 中插入的最后一行中获取了一个 GeoJSON,并将其转换为几何图形并将该几何图形插入到我获取 GeoJson 的同一行的另一列中.

重要:存储GeoJSON的列的数据类型为character varying。

希望它有道理,英语不是我的母语。