Buenas noches.
Tego que crear un TRIGGER que permita alimentar una relación que contenga los datos geográficos de líneas, que se creen desde cada punto de una tabla llamada universidades a una tabla llamada motel (creando la lina más cercana y lejana)
-- creo la tabla que soporta los datos geograficos
CREATE TABLE public.lineasmotel (numero SERIAL, fid NUMERIC (6),nombre VARCHAR, motel_mas_cercano VARCHAR, motel_mas_lejano VARCHAR);
ALTER TABLE lineasmotel ADD CONSTRAINT pklineasmotel PRIMARY KEY (numero);
-- creación de la geometría de los moteles y universidades
-- creación de la columna
SELECT AddGeometryColumn('','moteles','geom',4326,'POINT',2);
SELECT AddGeometryColumn('','universidades','geom',4326,'POINT',2);
-- función para extraer las distancias mas cercana y lejana
CREATE OR REPLACE FUNCTION distancia()
RETURNS TRIGGER AS $$
BEGIN
IF NEW.geom <> OLD.geom THEN
INSERT INTO lineasmotel (numero , fid ,nombre , motel_mas_cercano , motel_mas_lejano )
VALUES ( OLD.fid, OLD.fid, OLD.nombre, SELECT ST_distance(ST_transform(universidades.geom,3115),st_transform(moteles.geom,3115))as dist
from universidades, moteles
ORDER BY dist LIMIT 1 ,
SELECT ST_distance(ST_transform(universidades.geom,3115),st_transform(moteles.geom,3115))as dist
from universidades, moteles
ORDER BY dist LIMIT 11 );
END IF;
RETURN NULL;
END;
$$ LANGUAGE plpgsql;
-- trigger para la función
CREATE TRIGGER Tr_dist
AFTER UPDATE ON universidades
FOR EACH ROW
EXECUTE PROCEDURE distancia();
mi duda surgue cuando me salta un error en la función el cual me dice que el tengo un error de sintaxis insertando los valores en la tabla lineasmotel pero no logro identificar cúal es, agradecería mucho su ayuda