使用房间数据库(房间持久性库)创建触发器
如何使用房间持久性库“ 创建触发器 ”
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
在你的RoomDatabase
上调用getOpenHelper()
。 这给你一个SupportSQLiteOpenHelper
,它有一个让人想起SQLiteOpenHelper
的API。 在那里,调用getWritableDatabase()
来获得一个SupportSQLiteDatabase
,然后在那里使用execSQL()
来执行你的SQL语句。 一个RoomDatabase.Callback
是一个执行这种SQL的地方,正如AdamMc331在这个Kotlin代码片段中所说明的那样。
IOW,Room并没有真正帮助解决这个问题,但是对于像这样的情况,您总是可以使用较低级别的数据库API。