如何使用房间持久性库“创建触发器”
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
ubby3x7f1#
在你的RoomDatabase上调用getOpenHelper()。这会给你一个SupportSQLiteOpenHelper,它有一个让人想起SQLiteOpenHelper的API。在那里,调用getWritableDatabase()来得到一个SupportSQLiteDatabase,在那里使用execSQL()来执行你的SQL语句。RoomDatabase.Callback是执行这种SQL的一个地方,正如AdamMc331在this Kotlin snippet中所说明的。换句话说,Room对这种场景没有什么帮助,但是对于这种情况,您总是可以使用较低级别的数据库API。
RoomDatabase
getOpenHelper()
SupportSQLiteOpenHelper
SQLiteOpenHelper
getWritableDatabase()
SupportSQLiteDatabase
execSQL()
RoomDatabase.Callback
1条答案
按热度按时间ubby3x7f1#
在你的
RoomDatabase
上调用getOpenHelper()
。这会给你一个SupportSQLiteOpenHelper
,它有一个让人想起SQLiteOpenHelper
的API。在那里,调用getWritableDatabase()
来得到一个SupportSQLiteDatabase
,在那里使用execSQL()
来执行你的SQL语句。RoomDatabase.Callback
是执行这种SQL的一个地方,正如AdamMc331在this Kotlin snippet中所说明的。换句话说,Room对这种场景没有什么帮助,但是对于这种情况,您总是可以使用较低级别的数据库API。