A operação do acionador Android Sqlite passa por

Esta é minha primeira tabela, possui 3 colunas e todas são inseridas pelo usuário. Sem complicações e funciona bem. Mas existe outra tabela e ela depende dessa terceira coluna da tabela. ou seja, na coluna do número do quarto. Ignore a convenção de nomes, pois eu realmente não segui nenhuma das convenções de nomenclatur

Esta é minha segunda tabela e, como você pode ver, ela tem sua última coluna como número do quarto. ignore a convenção de nomes. essa coluna de número de quarto é chave estrangeira, depende da entrada ou exclusão da 1ª tabela. Agora, criei um esquema para a 2ª tabela. que declara ter 5 colunas e a última é a chave estrangeira.

 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+ "));");

s @ Tabelas que você vê estão sendo criadas com sucesso. Agora eu tenho que escrever uma instrução TRIGGER, com base nisso, quando eu excluir um número de sala da primeira tabela, todas as linhas da 2ª tabela que tem o mesmo número de sala devem ser excluídas. E se eu adicionar um novo número de quarto na primeira tabela, ele deverá ser adicionado na 2ª tabela. A instrução de gatilho para inserir o novo número de quarto que escrevi é a seguinte

    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;");

Este trecho de código que adicionei no onCreate () do meu arquivo de banco de dados. O que mais eu faço? Nada está acontecendo aqui. Por favor, indique-me onde estou cometendo um erro. Obrigado em toneladas, Shaista

questionAnswers(1)

yourAnswerToTheQuestion