
Это моя первая таблица, в ней 3 столбца, и все они вводятся пользователем. Никаких осложнений, и все работает отлично. Но есть другая таблица, и она зависит от этой таблицы в 3-м столбце. т.е. в колонке с номером комнаты. Пожалуйста, игнорируйте соглашение об именах, так как я действительно не следовал никаким соглашениям об именах.

Это моя вторая таблица, и, как вы можете видеть, последняя колонка имеет номер комнаты. пожалуйста, игнорируйте соглашение об именах. этот столбец номера комнаты является внешним ключом, он зависит от 1-й записи таблицы или удаления
Теперь я создал схему для 2-й таблицы. который объявляет, что у него есть 5 столбцов, и последний является внешним ключом.
private static final String DATABASE_CREATE_NOTES_ID_TABLE =
("CREATE TABLE "+ DATABASE_NOTES_TABLE +" ("+ KEY_ROWID +" INTEGER PRIMARY KEY AUTOINCREMENT, "+
KEY_TIME + " TEXT, "+
KEY_NOTES + " TEXT, "+
KEY_DATE + " TEXT, " +
KEY_ROOMS + " INTEGER , FOREIGN KEY (" + KEY_ROOMS + ") REFERENCES " + DATABASE_PATIENT_TABLE +" (" +KEY_ROOM_NUMBER+ "));");
Таблицы, как вы видите, создаются успешно.
Теперь мне нужно написать оператор TRIGGER, основанный на том, что когда я удаляю номер комнаты из первой таблицы, тогда все строки во 2-й таблице, имеющие одинаковый номер комнаты, должны быть удалены. И если я добавлю новый номер комнаты в первую таблицу, то он должен быть добавлен во 2-й таблице.
Оператор триггера для вставки нового номера комнаты, который я написал, выглядит следующим образом
db.execSQL("CREATE TRIGGER fk_notesTable_roomNumber " +
" BEFORE INSERT "+
" ON "+DATABASE_NOTES_TABLE+
" FOR EACH ROW BEGIN"+
" SELECT CASE WHEN ((SELECT "+KEY_ROOM_NUMBER+" FROM "+DATABASE_PATIENT_TABLE+" WHERE "+KEY_ROOM_NUMBER+"=new."+KEY_ROOMS +" ) IS NULL)"+
" THEN RAISE (ABORT,'Foreign Key Violation') END;"+
" END;");
Этот фрагмент кода, который я добавил в onCreate () моего файла базы данных. Что еще мне делать? Здесь ничего не происходит.
Пожалуйста, укажите мне, где я делаю ошибку.
Спасибо в тоннах,
Шаист