SQLite
 sql >> Base de données >  >> RDS >> SQLite

Salle Android - Comment effacer sqlite_sequence pour toutes les tables

Il semble que Room Database ne prend pas en charge la modification de la table sqlite_sequence, que ce soit via un DAO ou via une requête brute. Au lieu de cela, voici comment j'ai contourné ce problème (Kotlin) :

class NonRoomDb(context:Context) : SQLiteOpenHelper(context, DB_NAME, null, DB_VERSION) {
    override fun onCreate(db: SQLiteDatabase?) {}
    override fun onUpgrade(db: SQLiteDatabase?, oldVersion: Int, newVersion: Int) {}
}

fun resetPointer(context:Context, tableName:String) {
  val nonRoomDb = NonRoomDb(context)
  nonRoomDb.writableDatabase.execSQL("DELETE FROM sqlite_sequence WHERE name='$tableName';")
  nonRoomDb.close()
}