2016-07-30 10 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); 

これを変更して、ユーザー名で2つのテーブルをリンクすることができました(そうでないと、毎回ユーザー名を見つけるためにクエリを実行する必要があります。私のデータベースには2つありますが、これは私のアプリのチェックで防げます)。しかし、1)それはもはや働いていない、私のデータベース作成ステートメントの最後の3行はおそらく間違っている、誰もそれをチェックできますか?外部キーを使用する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"; 

} 

私は理解することはできませんので、ここでも、最後の行はおそらく間違っていますどのように外部キーを働かせるか(以前は働いていたが、私はそれらを変更しようとしていたので、usernameはID以外の外部キーとして使われるだろう)。

エラーメッセージ:

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

これはトリックでした。ありがとうございました。 – user3117628

+1

私は、ありがとう:) – user3117628

答えて

1

あなたが最初の実行後に列を追加したように思えます。
アプリをアンインストールして再インストールすると、新しい列が追加されます。

関連する問題