[Gfoss] esempio Trigger semplice

falcerisimone a inwind.it falcerisimone a inwind.it
Gio 14 Dic 2017 18:18:36 CET


Ciao a tutti,
non so quasi niente di triggers, ma desidero condividere la conoscenza di un semplice esempio di trigger.
In questo esempio si tratta del calcolo automatico della lunghezza di polilinee ogni qualvolta se ne disegnino di nuove oppure aggiornando un solo vertice.
In questo modo non dovrete piĆ¹ preoccuparvi di lanciare manualmente ogni volta il calcolo delle lunghezze!
In pratica si devono creare due triggers: insert e update.
Testato su Spatialite. Enjoy!

Es:
[
CREATE TABLE ril_lunghezze
(pk INTEGER NOT NULL PRIMARY KEY,
indirizzo TEXT,
lunghezza DOUBLE,
note TEXT);

SELECT AddGeometryColumn('ril_lunghezze','geom',32632,'LINESTRING',2);

CREATE TRIGGER insert_calc_length AFTER INSERT ON ril_lunghezze
BEGIN
UPDATE ril_lunghezze
SET
lunghezza= ROUND(ST_LENGTH(geom), 2)
WHERE ROWID=NEW.ROWID;
END

CREATE TRIGGER update_calc_length AFTER UPDATE ON ril_lunghezze
BEGIN
UPDATE ril_lunghezze
SET
lunghezza= ROUND(ST_LENGTH(geom), 2)
WHERE ROWID=NEW.ROWID;
END
]


Maggiori informazioni sulla lista Gfoss