Pregunta Biblioteca de persistencia de la habitación. Eliminar todos


¿Cómo puedo eliminar todas las entradas en una tabla específica usando Room Persistence Library? Necesito dejar la tabla, pero no puedo encontrar ninguna información sobre cómo hacer esto.

Solo cuando la base de datos está migrando o para cargar todas las entradas y eliminarlas :)


75
2018-05-29 14:08


origen


Respuestas:


Puede crear un método DAO para hacer esto.

@Dao 
interface MyDao {
    @Query("DELETE FROM myTableName")
    public void nukeTable();
}

204
2018-05-29 19:45



A partir de la habitación 1.1.0 puedes usar clearAllTables () cual:

Elimina todas las filas de todas las tablas que están registradas en esta base de datos como entidades ().


25
2018-03-28 22:12



Si desea eliminar una entrada de la tabla en la Habitación simplemente llame a esta función,

@Dao
public interface myDao{
    @Delete
    void delete(MyModel model);
}

Actualizar: Y si desea eliminar la tabla completa, llame a la función siguiente,

  @Query("DELETE FROM MyModel")
  void delete();

Nota: aquí Mi modelo es un nombre de tabla.


8
2018-01-15 10:42



Para Migration, te pasan un SupportSQLiteDatabase y puede eliminar lo que quieras vía execSQL().

Más allá de eso, puedes llamar getOpenHelper() en tu RoomDatabase y obtener un SupportSQLiteDatabase de ella, una vez más llamando execSQL() para eliminar lo que quieres

No veo una forma basada en anotaciones de eliminar todas las entidades, a menos que las tenga todas en memoria y las pueda pasar a una @Delete-un método anotado en su Dao.


4
2018-05-29 14:13



Combinando lo Dick Lucas dice y agrega un reinicio autoincremental de otras publicaciones de StackOverFlow, creo que esto puede funcionar:

        fun clearAndResetAllTables(): Boolean {
        if (db== null) return false

        // reset all auto-incrementalValues
        val query = SimpleSQLiteQuery("DELETE FROM sqlite_sequence")

        db!!.beginTransaction()
        return try {
            db!!.clearAllTables()
            db!!.query(query)
            db!!.setTransactionSuccessful()
            true
        } catch (e: Exception){
            false
        } finally {
            db!!.endTransaction()
        }
    }

1
2017-07-16 15:09