Итак, это 2015 год, и в SQLite до сих пор нет «триггеров отключения». Для мобильного приложения это может быть проблематично, особенно если это корпоративное приложение, требующее автономной работы и локальных данных.
Начальная загрузка данных может быть замедлена для обхода при выполнении триггера, даже если вы не заключаете каждую вставку в отдельную транзакцию.
Я решил эту проблему с помощью SQLite SQL довольно просто. У меня есть таблица настроек, которая не участвует в загрузке init. Он содержит «список» пар ключ / значение. У меня есть один ключ с именем 'fireTrigger' с битовым значением 0 или 1. У каждого моего триггера есть выражение, которое выбирает значение, и если оно равно 1, оно запускает триггер, в противном случае это не так.
Это выражение является дополнением к любым выражениям, оцениваемым на данных, относящихся к триггеру. e.g.:
AND 1 = (SELECT val FROM MTSSettings WHERE key = 'fireTrigger')
В простом чистом эффекте это позволяет мне отключить / включить триггер с простым UPDATE
в таблице настроек