Drop y recrear la tabla SQLite

¿Cómo puedo eliminar y volver a crear una tabla con información actualizada?

Por ejemplo; Tengo una tabla en mi aplicación con 5 registros.

ID Entry 1 a 2 b 3 c 4 d 5 e 

Ahora, cuando elimino un registro, digamos, ID 3, la tabla se convierte en

  ID Entry 1 a 2 b 4 d 5 e 

¿Cómo puedo dejarlo, y lo recreo para que se convierta en esto:

  ID Entry 1 a 2 b 3 d 4 e 

En realidad, la eliminación es controlada por el usuario para que cualquier registro pueda ser eliminado en cualquier momento.

Podría hacer lo siguiente: eliminar la fila que desea eliminar:

  public boolean deleteRow(int id) { return db.delete(YOUR_TABLE, ROW_ID + "=" + _id, null) > 0; } 

Leer las entradas restantes (sólo las entradas, no el id) en un ArrayList, la caída de su tabla:

  db.execSQL("DROP TABLE IF EXISTS " + YOUR_TABLE); 

Y recrea tu mesa. Entonces los Números de ID serán de nuevo de 1-XX en Orden

Sé que esto es un poste viejo pero pensé que aclararía cosas para otros que pueden hacer lo mismo que usted basado en su comentario:

Cuando se elimina un registro, el proceso de eliminación se realiza por la fila actualmente seleccionada, ya que sólo puedo seleccionar hasta la fila 4, ID 5 nunca se puede eliminar.

Usted realmente no debe recrear sus ids. Se ensucia las cosas si se utilizan como claves en otra tabla, más si usted tiene una gran base de datos, la recreación de ellos sólo puede perder el tiempo cuando no es realmente necesario.

Lo que debe hacer es guardar una matriz de los identificadores junto con una matriz de las entradas para que sepa qué identificador eliminar en función de la fila que seleccionó (o alguna otra forma de vincular los identificadores y los valores para poder capturarlos posteriormente).

En el ejemplo anterior, después de que alguien elimine la fila con id 3, las matrices se verían así:

 entries = { "a","b","d","e" } ids = { 1,2,4,5 } 

Si alguien selecciona "e", que es el cuarto elemento, simplemente elimina de la tabla donde el id es igual al cuarto valor de la matriz de ids, 5 en este caso.

De esta manera, si los elementos se agregan y eliminan constantemente, la base de datos podría terminar con ids 2, 34, 56 y 435. No importa porque su código se mantendrá informado y sabrá qué identificador eliminar.

  • ¿Cómo migrar la aplicación SQLite existente a la biblioteca de persistencia de habitaciones?
  • CursorLoader, obtiene URI para la base de datos local
  • ¿Es Parse.com un servicio adecuado para la copia de seguridad / sincronización con SQLite en Android?
  • Extraer una base de datos del emulador genymotion a un disco local
  • ¿Cuál es el tamaño máximo de la base de datos SQLite en Android?
  • Compruebe si la consulta SQL ha tenido éxito en Android SQLite
  • SQLITE - eliminar filas con join interno?
  • ¿Qué es la tabla android_metadata?
  • Cómo convertir MDB a SQLite en Android
  • ¿Hay buenos ORMs (preferiblemente implementaciones JPA) que soportan SQLite (en Android)?
  • Uso de la palabra clave IN en android sqlite
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.