Sqlite检查表是否为空

meh*_*met 25 database sqlite android

好吧,我有一个数据库,它有很多表.但通常表都是空的.我想检查数据库表是否为空.如果IF表为空,程序将填充它.

public static long queryNumEntries (SQLiteDatabase db, String table)
Run Code Online (Sandbox Code Playgroud)

我将使用它,但它要求API 11.

Waq*_*med 35

你可以执行select count(*) from table并检查是否count> 0然后让其他人填充它.

喜欢

 SQLiteDatabase db = table.getWritableDatabase();
String count = "SELECT count(*) FROM table";
Cursor mcursor = db.rawQuery(count, null);
mcursor.moveToFirst();
int icount = mcursor.getInt(0);
if(icount>0)
//leave 
else
//populate table
Run Code Online (Sandbox Code Playgroud)


Luc*_*epe 10

做一个SELECT COUNT:

boolean empty = true
Cursor cur = db.rawQuery("SELECT COUNT(*) FROM YOURTABLE", null);
if (cur != null && cur.moveToFirst()) {
    empty = (cur.getInt (0) == 0);
}
cur.close();

return empty;
Run Code Online (Sandbox Code Playgroud)


Dwi*_* Ji 6

最优解

public boolean  isMasterEmpty() {

    boolean flag;
    String quString = "select exists(select 1 from " + TABLE_MASTERS  + ");";

    SQLiteDatabase db = getReadableDatabase();
    Cursor cursor = db.rawQuery(quString, null);
    cursor.moveToFirst();
    int count= cursor.getInt(0);
    if (count ==1) {
        flag =  false;
    } else {
        flag = true;
    } 
    cursor.close();
    db.close();

    return flag;
    }
Run Code Online (Sandbox Code Playgroud)


Mah*_*ade 6

 public boolean isEmpty(String TableName){

    SQLiteDatabase database = this.getReadableDatabase();
    int NoOfRows = (int) DatabaseUtils.queryNumEntries(database,TableName);

    if (NoOfRows == 0){
        return true;
    }else {
        return false;
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 您可以简单地执行“return NoOfRows == 0;”,而不是“if”子句。 (2认同)