Как сделать обновление со значением из приведения? - PullRequest
0 голосов
/ 12 февраля 2019

У меня есть запрос INSERT INTO, который берет ввод из html-формы и вставляет его в таблицу на postgres, одним из значений столбца является GeoJSON.Теперь я пытаюсь подготовить функцию триггера, которая берет json после запроса INSERT, преобразует его в геометрию и вставляет эту геометрию в другой столбец той же таблицы.

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 из последней вставленной строки и преобразую его в геометрию, но я не знаю, как вставить это значение геометрии в другой столбец.

1 Ответ

0 голосов
/ 13 февраля 2019

Мне удается создать запрос, который решает мою проблему:

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.

Importante: столбец, в котором хранится GeoJSON, имеет различный тип данных.

Надеюсь, это имело смысл, английский не мой родной язык.

...