I have two albums and songs, and each song has a link to alum id.
Album table:
CREATE TABLE albums (id INTEGER PRIMARY KEY ASC, name TEXT, additional TEXT)
Song table:
CREATE TABLE songs (id INTEGER PRIMARY KEY ASC, album_fk INTEGER NOT NULL, title TEXT, url TEXT, duration BIGINT NOT NULL)
and I also have a trigger to check when I delete the album, if it has existing songs in it:
CREATE TRIGGER trigger_on_delete BEFORE DELETE ON albums FOR EACH ROW BEGIN SELECT RAISE(FAIL,'album has songs cannot be deleted') WHERE (SELECT album_fk FROM songs WHERE album_fk = OLD.id) IS NOT NULL;) END
it all works great, but sometimes
Exception: android.database.sqlite.SQLiteConstraintException: error code 19: constraint failed Stack Trace : android.database.sqlite.SQLiteStatement.native_execute(Native Method) android.database.sqlite.SQLiteStatement.execute(SQLiteStatement.java: 66)
throws when I try to delete an album. My delete method simply deletes the album by id. The bad thing is that I canโt reproduce this, so I canโt provide a lot of information. I tried different scenarios with deleting the album, but I did not get this exception.
So, any ideas how you can research this problem. There are no restrictions on the album table, so what might cause such an exception? Any help would be appreciated.
source share