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

보인다.
그런 다음 앱을 제거했다가 다시 설치하면 새 열이 추가됩니다.

관련 문제