Check if you have Data in SQLite table

1

How to check if an Android SQLite table contains data?

    
asked by anonymous 13.09.2014 / 01:23

1 answer

2

There are two ways to do this:

Using a SELECT COUNT :

// Obtenha a instância de SQLiteDatabase
SQLiteDatabase db = ...;

Cursor cur = db.rawQuery("SELECT COUNT(*) FROM TABELA", null);

if (cur != null) {
    cur.moveToFirst();
    if (cur.getInt (0) == 0) {
        // Tabela esta vazia, preencha com seus dados iniciais
    } else {
        // Tabela ja contem dados.
    }
}

A recommendation for large tables can be the query:

SELECT EXISTS (SELECT 1 FROM TABELA)

In this query the engine can stop when it finds the first element, being more performative.

Getting:

// Obtenha a instância de SQLiteDatabase
SQLiteDatabase db = ...;

Cursor cur = db.rawQuery("SELECT EXISTS (SELECT 1 FROM TABELA)", null);

if (cur != null) {
    cur.moveToFirst();
    if (cur.getInt (0) == 0) {
        // Tabela esta vazia, preencha com seus dados iniciais
    } else {
        // Tabela ja contem dados.
    }
}

Or using DatabaseUtils :

// Obtenha a instância de SQLiteDatabase
SQLiteDatabase db = ...;
long numOfEntries = DatabaseUtils.queryNumEntries(db, "TABELA");

if(numOfEntries == 0l) {
    // Tabela vazia, preencha com seus dados iniciais
} else {
    // Tabela ja contem dados.
}

Looking at the source code of DatabaseUtils.queryNumEntries(SQLiteDatabase db, String table) . They both do the same thing.

Sources:

  • link
  • 13.09.2014 / 01:38