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

Похоже, вы добавили столбец после первого запуска.
Затем удалите и переустановите приложение, и новый столбец будет добавлен.

Смежные вопросы