Sqlite中判断表、字段是否存在的方法

来源:互联网 发布:触摸屏控制软件 编辑:程序博客网 时间:2024/05/17 03:58

Sqlite中判断表、字段是否存在的方法

标签: sqliteandroid判定是否存在某字段
 1158人阅读 评论(0) 收藏 举报
 分类:
     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语句中判断某字段是否存在


[java] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. /** 
  2.  * 判断某表里某字段是否存在 
  3.  *  
  4.  * @param db 
  5.  * @param tableName 
  6.  * @param fieldName 
  7.  * @return 
  8.  */  
  9. private boolean isFieldExist(SQLiteDatabase db, String tableName, String fieldName) {  
  10.     String queryStr = "select sql from sqlite_master where type = 'table' and name = '%s'";  
  11.     queryStr = String.format(queryStr, tableName);  
  12.     Cursor c = db.rawQuery(queryStr, null);  
  13.     String tableCreateSql = null;  
  14.     try {  
  15.         if (c != null && c.moveToFirst()) {  
  16.             tableCreateSql = c.getString(c.getColumnIndex("sql"));  
  17.         }  
  18.     } finally {  
  19.         if (c != null)  
  20.             c.close();  
  21.     }  
  22.     if (tableCreateSql != null && tableCreateSql.contains(fieldName))  
  23.         return true;  
  24.     return false;  
  25. }  
0 0
原创粉丝点击