Android with Sqlite - 如何检查表是否存在以及是否为空

Oli*_*Oli 3 sqlite alert android android-studio

如果表格不存在或表格内容为空,我想显示一个警报框。

要检查表是否为空,我正在使用:

        cCheckDB = db.rawQuery("SELECT COUNT(*) FROM " + MainActivity.TABLE_NAME +"", null);

        if (cCheckDB != null) {
            cCheckDB.moveToFirst();

            if (cCheckDB.getInt (0) == 0) {
                // EMPTY
            }
        }
Run Code Online (Sandbox Code Playgroud)

但是如何将其包装在“如果表存在”中?什么是最好的方法?

我知道两种检查表是否存在或检查其中是否有内容的方法。但是,如果可能的话,我想以一种有意义的方式而不是在单个查询中使用这些检查——这是我的问题。

小智 5

希望,这会对你有所帮助。它运作良好!!!

public boolean isTableExists(String tableName, boolean openDb) {
    if(openDb) {
        if(mDatabase == null || !mDatabase.isOpen()) {
            mDatabase = getReadableDatabase();
        }

        if(!mDatabase.isReadOnly()) {
            mDatabase.close();
            mDatabase = getReadableDatabase();
        }
    }

    Cursor cursor = mDatabase.rawQuery("select DISTINCT tbl_name from sqlite_master where tbl_name = '"+tableName+"'", null);
    if(cursor!=null) {
        if(cursor.getCount()>0) {
                            cursor.close();
            return true;
        }
                    cursor.close();
    }
    return false;
}
Run Code Online (Sandbox Code Playgroud)