Я надеюсь создать функцию, которая может обновлять столбцы в моей таблице.
Но, похоже, это не сработает. Я довольно новичок в postgres, и мне интересно, есть ли способ сделать это? Вот то, что у меня есть до сих пор:
Create Table roads(
intid_ integer,
muni text,
alias_ text,
roadnames text,
geom geometry);
Insert into roads (roadnames, geom, intid_, alias_)
SELECT
trim(student.sc_e911slrn.prefix) || trim(student.sc_e911slrn.name) || trim(student.sc_e911slrn.suffix),
geom, objectid, alias
FROM student.sc_e911slrn;
--------------------------------------------------------------------
CREATE type student.inter AS (
roadnames text,
intid_ int,
alias_ text,
muni text,
ST_Intersection geometry,
geom geometry);
--< Cursor >--------------------------------------------------------
Create function create_intersections()
/*returns table student.intersect_roads As $method1$*/
RETURNS table (
roadnames text,
intid_ int,
alias_ text,
muni text,
ST_Intersection geometry,
geom geometry) As $$
Declare
return_intersect inter;
rec_road Record;
cur_road Cursor()
For Select intid_, geom, roadnames
From student.roads;
Begin
Open cur_road();
Loop
fetch cur_road into rec_road;
exit when not found;
If ST_Touches(rec_road.geom, student.roads.geom) AND
rec_road.geom != student.roads.geom AND
rec_road.intid_ != student.roads.intid_
Then Update student.intersect_road
Set st_intersection = ST_Intersection (rec_road.geom, student.roads.geom),
intid_ = rec_road.intid_,
intersections = rec_road.roadnames|| ' & ' || student.raods.roadnames,
alias_ = rec_road.alias_,
/*muni = */
polyline = ST_Union(rec_road.geom, student.roads.geom)
RETURNING * into return_intersect;
RETURN NEXT;
End if;
End Loop;
Close cur_road;
RETURN;
End;
$$ Language plpgsql;
Итак, путь к таблице выглядит примерно так:
Intid_ Muni Alias_ Roadnames geom
24581722 NULL CR 52 Coopers Falls road ...
24581723 NULL CR 44 Rama road ...
Я пытаюсь создать таблицу, содержащую пересечения в местоположении где каждая дорога пересекает Roadname 1 & Roadname 2
, а также геометрические пространственные данные для пересечения ST_Intersection(a.geom, b.geom)
Я также пытался
CREATE FUNCTION create_intersections()
UPDATE student.intersect_roads AS $$
Declare
Begin
End
$$
, который также не работает. Любые отзывы будут оценены. Спасибо!