Я создаю триггер, но получаю эту ошибку:
android.database.sqlite.SQLiteException: около "CREATE": синтаксическая ошибка: CREATE TRIGGER fk_item_place ПЕРЕД ВСТАВКОЙ НА CREATE TABLE Item_Place (PlaceIDfkINTEGER, ItemID NTEGER, ИНОСТРАННЫЙ КЛЮЧ (PlaceIDfk) ССЫЛКИ Place_Table (Place_ID) НА УДАЛИТЬ КАСКАД ИНОСТРАННЫЙ КЛЮЧ (ItemID) ССЫЛКИ ContentTable (ContentID));ДЛЯ КАЖДОЙ СТРОКИ НАЧИНАЕТСЯ ВЫБИРАТЬ СЛУЧАЙ КОГДА ((ВЫБЕРИТЕ Place_ID ИЗ Place_Table WHERE Place_ID = new.PlaceIDfk) НЕДЕЙСТВИТЕЛЕН) ПОТОМ ПОДНИМИТЕ (ABORT, «Нарушение внешнего ключа») END;END;
Мой код такой:
db.execSQL("CREATE TRIGGER fk_item_place " +
" BEFORE INSERT "+
" ON "+ Item_places +
" FOR EACH ROW BEGIN "+
" SELECT CASE WHEN ((SELECT "+ PlaceID +" FROM "+ PlaceTable +" WHERE "+ PlaceID +"=new." + place_id + " ) IS NULL)"+
" THEN RAISE (ABORT,'Foreign Key Violation') END ;" +
" END ;");
Что я делаю не так?