加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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;
	}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读