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