How to "Create Trigger" using Room Persistence library
CREATE TRIGGER IF NOT EXISTS delete_till_10 INSERT ON user WHEN (select count(*) from user)>9
BEGIN
DELETE FROM user WHERE id IN (SELECT id FROM user ORDER BY id limit (select count(*) -9 from user));
END
Call getOpenHelper()
on your RoomDatabase
. This gives you a SupportSQLiteOpenHelper
, which has an API reminiscent of SQLiteOpenHelper
. On there, call getWritableDatabase()
to get a SupportSQLiteDatabase
, and on there use execSQL()
to execute your SQL statements. A RoomDatabase.Callback
is one place to execute this sort of SQL, as AdamMc331 illustrates in this Kotlin snippet.
IOW, Room does not really help with this scenario, but you can always work with the lower-level database API for cases like this one.