Sqlite中判断表、字段是否存在的方法
发布时间:2020-12-12 23:50:16 所属栏目:百科 来源:网络整理
导读:sqlite会自动维护一个系统表sqlite_master,该表存储了我们所创建的各个table,view,trigger等等信息。有时数据库升级时,由于等等原因,我们可能需要增加表、字段等等。可以采取以下方法来判断数据库中是否存在某表、字段等等。 select * from sqlite_master
sqlite会自动维护一个系统表sqlite_master,该表存储了我们所创建的各个table,view,trigger等等信息。有时数据库升级时,由于等等原因,我们可能需要增加表、字段等等。可以采取以下方法来判断数据库中是否存在某表、字段等等。
select * from sqlite_master where type = 'table' and name = '表名' 如果查不到指定表名的信息,则表示该表不存在 sqlite_master表数据字段: type: 类型,取值一般为table,view name: tbl_name: 表名 rootpage: sql: 创建表或者视图的sql语句,可以从该sql语句中判断某字段是否存在
/** * 判断某表里某字段是否存在 * * @param db * @param tableName * @param fieldName * @return */ private boolean isFieldExist(SQLiteDatabase db,String tableName,String fieldName) { String queryStr = "select sql from sqlite_master where type = 'table' and name = '%s'"; queryStr = String.format(queryStr,tableName); Cursor c = db.rawQuery(queryStr,null); String tableCreateSql = null; try { if (c != null && c.moveToFirst()) { tableCreateSql = c.getString(c.getColumnIndex("sql")); } } finally { if (c != null) c.close(); } if (tableCreateSql != null && tableCreateSql.contains(fieldName)) return true; return false; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |