我有一个INSERT INTO
查询,该查询从html表单获取输入并将其插入到postgres的表中,该列的值之一是GeoJSON。现在,我正在尝试准备一个触发函数,该函数将在INSERT
查询之后获取json并将其转换为几何图形,然后将此几何图形插入同一张表的另一列中。
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并将其转换为几何,但是我不知道如何在另一列中插入此几何值。
答案 0 :(得分:0)
我设法提出一个可以解决我的问题的查询:
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
);
通过此查询,我从插入表的最后一行中获取一个GeoJSON,并将其转换为几何并将此几何插入到我获取GeoJson所在的同一行的另一列中。
重要提示:存储GeoJSON的列的字符类型不同。
希望这很有道理,英语不是我的母语。