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):
這樣做,謝謝。 – user3117628
我做了,謝謝:) – user3117628