Ответ 1
Это синтаксическая ошибка, так как синтаксическая диаграмма для SQLite Triggers не допускает никаких предложений IF и конструкций CASE WHEN.
Но вы можете добиться такого же эффекта, указав два или три триггера, которые используют условие WHEN, см. http://sqlite.org/lang_createtrigger.html
Итак, вы создадите триггер для своего случая DELETE следующим образом:
CREATE TRIGGER delete_from_other_table AFTER INSERT ON someTable
WHEN new.someValue = 0
BEGIN
DELETE FROM anotherTable WHERE (... some condition );
END;
И чем добавить еще один триггер для случая INSERT и UPDATE с соответствующими условиями...
CREATE TRIGGER update_another_table AFTER INSERT ON someTable
WHEN new.someValue <> 0
BEGIN
...
END;