sql - 如何使用演员表的价值进行更新?
问题描述
我有一个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 并将其转换为几何,但我不知道如何将此几何值插入另一列。
解决方案
我设法提出了一个解决我的问题的查询:
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 的列具有字符变化的数据类型。
希望这是有道理的,英语不是我的第一语言。
推荐阅读
- sftp - 从 SFTP 文件夹复制和删除文件
- javascript - 如何用“onerror”捕获“ReferenceError”
- powershell - 嵌套 If 语句 first -notlike 条件
- c++ - 检测输入字符串是否有空格
- excel - Excel VBA 438 错误在 PC 上引发,但在 Mac 上没有
- magento2 - 缺少css文件的没有背景的按钮
- transparency - 有没有办法用 Allegro 创建一个半透明的窗口?
- c# - 如何删除 DataGrid 中的选定列?(C#/WPF)
- javascript - 如何检查多个数组上的键值对并使用 javascript 进行过滤?
- algorithm - 前 N 个允许分布式数据的重复算法