On Sat, 28 Dec 2019 18:19:02 +0100, Massimiliano Moraca wrote:
sostituendo con buffer ottengo questo
messaggio di errore nel momento in cui voglio salvare il poligono
creato:

Could not commit changes to layer buffer
Errors: ERROR: 1 feature(s) not added.

Provider errors:
PostGIS error while adding features: ERRORE: la query non ha una
destinazione per i dati restituiti
HINT: Se vuoi scartare i risultati di una SELECT, utilizza PERFORM.
CONTEXT: funzione PL/pgSQL intersection_function() riga 3 a
istruzione SQL


Massimiliano,

sempre premettendo che io conosco bene i Triggers di SQLite e molto
poco quelli di PostgreSQL (e paiono sostanzialmente diversi).

ragionando a fil di logica l'errore dovrebbe nascere dal fatto che
tu nel tuo trigger-body in effetti ti limiti a fare una SELECT, ma
non specifichi mai da nessuna parte che quei valori ottenuti dalla
SELECT poi li vuoi inserire nella tavola di output.
verosimilmente quello che ti serve e' definire uno statement SQL
piu' o meno di questo tenore:

INSERT INTO intersection_output (idb, idp, geom)
SELECT a.idb, b.idp, ST_Intersection(a.geom, b.geom)
FROM ..... etc etc ...

===========================================
hint:
un trigger non e' altro che un normalissimo statement SQL
(piu' o meno complesso) che scatta automaticamente tutte le
volte che si realizza un determinato evento.
di per se non ha nulla di "magico", tutte le azioni che
intendi fare te le devi definire tu una per una.

ciao Sandro
_______________________________________________
Gfoss@lists.gfoss.it
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non hanno relazione diretta con le posizioni 
dell'Associazione GFOSS.it.
764 iscritti al 23/08/2019

Rispondere a