部屋の永続性ライブラリを使用して "トリガーを作成"する方法
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
を連想させるAPIを持つSQLiteOpenHelper
が得られます。そこで、getWritableDatabase()
を呼び出してSupportSQLiteDatabase
を取得し、そこでexecSQL()
を使用してSQLステートメントを実行します。 A RoomDatabase.Callback
は、AdamMc331が このKotlinスニペット で示しているように、この種のSQLを実行する1つの場所です。
IOW、Roomはこのシナリオでは実際には役に立ちませんが、このような場合はいつでも低レベルのデータベースAPIを使用できます。