代码之家  ›  专栏  ›  技术社区  ›  Igor Filippov

又一个Android sqlite数据库问题

  •  1
  • Igor Filippov  · 技术社区  · 14 年前

    我想在数据库中创建两个表,如何使用sqliteOpenHelper子代并重写oncreate metod?下面的代码可以吗?好像我做错了。

    public void onCreate(SQLiteDatabase db){
          db.execSQL("CREATE TABLE "+CATEGORY_TABLE+" ("+_ID+" INTEGER PRIMARY KEY AUTOINCREMENT, "+
                  CATEGORY_NAME+" TEXT NOT NULL);");    
    
          db.execSQL("CREATE TABLE "+RECIPES_TABLE+" ("+_ID+" INTEGER PRIMARY KEY AUTOINCREMENT, "+
                  RECIPE_NAME+" TEXT NOT NULL, "+CATEGORY_ID+" INTEGER, "+ RECIPE+" TEXT NOT NULL);");
      }
    
    2 回复  |  直到 14 年前
        1
  •  0
  •   Vladimir Ivanov    14 年前

    实际上,所有的创建语句都必须在一个execsql语句内执行。另一点是,如果要更改DB架构,必须增加DB版本,那么将再次调用onCreate。

        2
  •  0
  •   Rupal    14 年前

    另外,我建议“如果不存在就创建表”,而不仅仅是“创建表”,即即使同一个SQL语句执行了两次,也不会得到异常。