Le code pour la création de la table:Créer une table de base de données sqlite ayant une clé étrangère comme colonne de table dans android. Je suis confronté à une erreur de suivi. Comment puis-je résoudre ce
public static final String CREATE_USER_TABLE = "CREATE TABLE " + USER +
"("
+ KEY_USER_ID + " INTEGER PRIMARY KEY AUTOINCREMENT,"
+ KEY_USERNAME + " TEXT,"
+ KEY_MOBILE_NUMBER + " TEXT,"
+ KEY_EMAIL + " TEXT,"
+ KEY_USER_DISABLES + " TEXT,"
+ KEY_USER_PASSWORD + " TEXT" +
")";
public static final String CREATE_DEVICE_TABLE="CREATE TABLE " + DEVICE +
"("
+ KEY_DEVICE_ID + " INTEGER PRIMARY KEY AUTOINCREMENT,"
+ KEY_DID + " TEXT,"
+ KEY_DEVICE_NAME + " TEXT,"
+ KEY_DEVICE_DISABLES + " TEXT" +
")";
public static final String CREATE_USER_DEVICE_TABLE= "CREATE TABLE " + USER_DEVICE + " ("
+ KEY_USER_DEVICE_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, "
+ KEY_USER_DEVICE_DISABLES + " TEXT, "
+ KEY_UD_USER+ " INTEGER NOT NULL , FOREIGN KEY ("+KEY_UD_USER+") REFERENCES "+USER+" ("+KEY_USER_ID+"),"
+ KEY_UD_DEVICE+ " INTEGER NOT NULL , FOREIGN KEY ("+KEY_UD_DEVICE+") REFERENCES "+DEVICE+" ("+KEY_DEVICE_ID+"));";
@Override
public void onCreate(SQLiteDatabase db) {
/* creating user table */
db.execSQL(CREATE_USER_TABLE);
/* creating device table */
db.execSQL(CREATE_DEVICE_TABLE);
/* creating user-device table */
db.execSQL(CREATE_USER_DEVICE_TABLE);
}
L'erreur:
Caused by: android.database.sqlite.SQLiteException: near "u_id": syntax error (code 1): ,
while compiling: CREATE TABLE user_device (did INTEGER PRIMARY KEY AUTOINCREMENT,
false TEXT, d_id INTEGER NOT NULL ,
FOREIGN KEY (d_id) REFERENCES users (id),u_id INTEGER NOT NULL ,
FOREIGN KEY (u_id) REFERENCES device (id));
est-ce que KEY_USER_DEVICE_DISABLES est supposé être "faux" dans la requête générée? – N3SS4H