es also hier 2015 und es gibt noch keine ‚disable Trigger‘ in SQLite. Für eine mobile Anwendung kann dies problematisch sein - insbesondere, wenn es sich um eine Unternehmens-App handelt, die Offline-Funktionalität und lokale Daten erfordert.
Eine anfängliche Datenladung kann verlangsamt werden, um durch Ausführung von Triggern zu crawlen, auch wenn Sie nicht jede Einfügung in eine einzelne Transaktion umbrechen.
Ich löste dieses Problem mit SQLite SQL ziemlich einfach. Ich habe eine Einstellungstabelle, die nicht an der Init-Last teilnimmt. Es enthält eine Liste von Schlüssel/Wert-Paaren. Ich habe einen Schlüssel namens "fireTrigger" mit einem Bit-Wert von 0 oder 1. Jeder Trigger, den ich habe, hat einen Ausdruck, der den Wert auswählt und wenn er gleich 1 ist, löst er den Trigger aus, sonst nicht.
Dieser Ausdruck wird zusätzlich zu allen Ausdrücken verwendet, die für die Daten ausgewertet werden, die sich auf den Trigger beziehen. zB:
AND 1 = (SELECT val FROM MTSSettings WHERE key = 'fireTrigger')
In einfachen Clean-Effekt dies ermöglicht es mir, den Trigger mit einer einfachen UPDATE
an den Einstellungen Tabelle
Wie haben Sie eine Funktion in SQLite erstellt? – Ivan