SQLite
 sql >> Base de Dados >  >> RDS >> SQLite

Sala Android - Como limpar sqlite_sequence para todas as tabelas


Parece que o Room Database não suporta a edição da tabela sqlite_sequence, seja por meio de um DAO ou por meio de uma consulta bruta. Em vez disso, aqui está como eu resolvi esse problema (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()
}