2016-07-30 83 views
0
String CREATE_FAVOURITES_TABLE = "CREATE TABLE IF NOT EXISTS " + 
      TABLE_FAVOURITES + "(" 
      + COLUMN_ID2 + " INTEGER PRIMARY KEY," 
      + COLUMN_NAME + " TEXT," 
      + COLUMN_POSTCODE + " INTEGER," 
      + COLUMN_DEELGEMEENTE + " TEXT," 
      + COLUMN_GEMEENTE + " TEXT," 
      + COLUMN_ADRES + " TEXT," 
      + COLUMN_USERNAME + " TEXT, " 
      + "FOREIGN KEY(" + COLUMN_USERNAME+ ") REFERENCES " 
      + TABLE_USERS + "(username) " + ")"; 
    db.execSQL(CREATE_FAVOURITES_TABLE); 

我试图改变这个,所以我可以链接两个表的用户名(否则我必须运行查询找到用户名每次,用户名是唯一的,所以这是不可能的因为在我的数据库中有两个,这是通过我的应用程序中的检查来阻止的)。但1)它不工作了,我的数据库创建语句的最后三行可能不正确,任何人都可以检查?SQLite使用外键

2)我想找到的用户名单个用户所有的最爱,所以我写了这段代码:

public void findFavourites(User user,Winkel winkel){ 

    String selectQuery = "SELECT" + COLUMN_NAME +"," + COLUMN_ADRES + "," + COLUMN_GEMEENTE + "," + COLUMN_DEELGEMEENTE + "," + COLUMN_POSTCODE; 
    selectQuery += "FROM" + TABLE_USERS + "," +TABLE_FAVOURITES; 
    selectQuery += "WHERE"+ COLUMN_ID+"=" +COLUMN_ID + "AND"; 

} 

一遍,最后一行可能不正确,因为我不出了如何让外键工作(他们以前工作过,但后来我试图改变他们,所以用户名将被用作外键,而不是id)。

错误消息:

SQLiteException: table favorieten has no column named username (code 1): 
+1

这样做,谢谢。 – user3117628

+1

我做了,谢谢:) – user3117628

回答

1

好像你第一次运行后添加列。
然后卸载并重新安装您的应用程序,新列将被添加。