2016-07-30 81 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

好像你第一次運行後添加列。
然後卸載並重新安裝您的應用程序,新列將被添加。