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):
これはトリックでした。ありがとうございました。 – user3117628
私は、ありがとう:) – user3117628