SQLite
 sql >> Database >  >> RDS >> SQLite

Stanza Android - Come cancellare sqlite_sequence per tutte le tabelle

Sembra che il database delle stanze non supporti la modifica della tabella sqlite_sequence, né tramite un DAO né tramite una query grezza. Invece, ecco come ho risolto questo 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()
}