On Fri, 15 Dec 2017 08:02:22 +0100, Andrea Peri wrote:
Tutto bello.
Pero' attenzione ad aggiungere i triggers.
Il maggior rischio e' pensare di usarli per fare cose troppo
sofisticate.
un trigger e' esattamente come un coltello molto affilato;
se lo sai usare bene e con giudizio puo' servire per fare
tante cose utili (per esempio in cucina), ma se lo usi
male e senza criterio puo' finire per ferire anche gravemente
te stesso o gli altri ... ma la colpa non e' mai del coltello,
e' sempre tutta di chi lo maneggia :-D
Con il rischio che poiche' non si a mai cosa in futuro ci si deve
fare
con tali dati, di ritrovarsi magari dopo qualche mese a vedere
comportamenti anomali su un applicativo e dimenticarsi che dentro la
BD vi' sono dei triggers che facevano certe operazioni e che guarda
caso interfericono con altre operazioni all'epoca non preventivate.
I triggers non sono facilmente rilevabili , e, specialmente su
spatialite,
non credo che si possano nemmeno rimuovere senza interferire con i
dati stessi.
Qui pero' forse lo sa' meglio Furieri.
Forse mi sbaglio, ma temo che per rimuovere un trigger su una tabella
spatialite sia necessario droppare la tabella con tutto il suo
contenuto.
Se cosi' fosse occorre stare parecchio attenti a usarli , perche' se
per rimuovere un trigger che da noia si deve cancellare tutti i dati
in tale tabella.
Si fa' certamente, ma diventa macchinoso e complicato .
no, su SQLite non ci sono problemi di sorta a rimuovere un trigger;
basta semplicemente eseguire:
DROP TRIGGER <trigger-name>;
una volta rimosso il trigger tutti gli effetti connessi cesseranno
immediatamente. ovviamente i dati gia' presenti nella tavola rimarranno
del tutto inalterati.
il limite di SQLite e' che a differenze di PostgreSQL non supporta
"ALTER TABLE DISABLE TRIGGER", "ALTER TABLE ENABLE TRIGGER" o
"ALTER TRIGGER".
su SQLite l'unico modo per modificare un qualunque trigger gia'
definito e' quello di fare una "DROP TRIGGER" seguita da una
nuova "CREATE TRIGGER".
Quindi attenzione, massima attenzione a usare i triggers.
non posso far altro che associarmi alla raccomandazione di
Andrea; i trigger sono tanto potenti quanto pericolosi, e
quindi vanno maneggiati con estrema cautela e solo dopo
avere effettuato a monte un testing molto pignolo e pedante
a scanso di brutte sorprese.
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.
801 iscritti al 19/07/2017