Così qui è il 2015 e non c'è ancora 'trigger disabilita' in SQLite. Per un'applicazione mobile questo può essere problematico, specialmente se si tratta di un'applicazione aziendale che richiede funzionalità offline e dati locali.
Un caricamento dati iniziale può essere rallentato per la ricerca per indicizzazione mediante l'esecuzione del trigger anche quando non si esegue il wrapping di ogni inserto in una singola transazione.
Ho risolto questo problema utilizzando SQLite SQL in modo piuttosto semplice. Ho una tabella delle impostazioni che non partecipa al caricamento di init. Contiene "lista" di coppie chiave/valore. Ho una chiave chiamata 'fireTrigger' con un valore di bit di 0 o 1. Ogni trigger che ho ha un'espressione che seleziona il valore e se è uguale a 1 fa scattare il trigger, altrimenti non lo fa.
Questa espressione è in aggiunta a qualsiasi espressione valutata sui dati relativi al trigger. ad esempio:
AND 1 = (SELECT val FROM MTSSettings WHERE key = 'fireTrigger')
In semplice effetto pulito questo mi permette di abilitare/disabilitare il grilletto con un semplice UPDATE
alla tabella delle impostazioni
fonte
2015-07-22 14:03:21
Come hai creato una funzione in SQLite? – Ivan