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.
- ¿Por qué INSERTs y UPDATEs son más lentos en Android 4.0?
- declaración no válida en fillwindow () en Android
- ¿Está bien tener una instancia de SQLiteOpenHelper compartida por todas las actividades en una aplicación de Android?
- Cómo utilizar join consulta en CursorLoader cuando su constructor no lo admite
- Tablas de muestra Android sqlite
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.
- ¿Qué es lo mejor: 1 tabla por registro o 1 tabla con todos los registros vinculados con claves foráneas?
- Cómo seleccionar datos entre dos intervalos de fechas en android SQLite
- Android - SimpleCursorAdapter.ViewBinder - Establecer el color de fondo
- ¿Cómo puedo anotar correctamente las clases de herencia usando ORMLite?
- Registro de consultas SQL en android
- ¿Se ha construido SQLite en Android con el tokenizador ICU habilitado para FTS?
- Androide. Proveedor de contenido o base de datos?
- SQLiteDatabase actualización no funciona?
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 convertir vídeo en gif en android programaticamente
- Cómo manejar mejor gesto de fling para Android ListActivity