Во-первых, пожалуйста, прости меня за мой приблизительный английский.
У меня есть 2 таблицы, одна (tb_facture) с внешним ключом, ссылающимся на вторую (tb_garage)
Моя проблема в том, что я могуНЕ ВСТАВЛЯЙТЕ в tb_facture без предоставления внешнего ключа, который ссылается на tb_garage.
Если я предоставлю действительный внешний ключ, проблем не будет.Но если я пытаюсь дать -1 (или что-то еще), он не вставляется.
Я должен быть в состоянии сделать это, потому что в моем приложении не обязательно привязывать гараж кinvoice.
Вот код вставки:
private void saveState(){
String libelleFac = etLibelleFac.getText().toString();
String dateFac = tvDateAfficheeFac.getText().toString();
String kmFac = etKmFac.getText().toString();
String remarqueFac = etRemarqueFac.getText().toString();
float montantFac = Float.parseFloat(etMontantFac.getText().toString());
String datePaieFac = tvDateAfficheePaiement.getText().toString();
if(mRowId == null){
if (cbGarageFac.isChecked()){
db.insererFacture(itemSpListeVhc, itemSpListeGar, dateFac, libelleFac, remarqueFac, kmFac, montantFac, datePaieFac);
}
else{
db.insererFacture(itemSpListeVhc, -1, dateFac, libelleFac, remarqueFac, kmFac, montantFac, datePaieFac);
}
}
}
Если я заменю -1 действительным внешним ключом или itemSpListeGar, это сработает.
Вот мой запрос:
public long insererFacture(long fkVhcFac, long fkGarFac, String dateFac, String libelleFac, String remarqueFac, String kmFac, float montantFac, String datePaieFac){
ContentValues values = new ContentValues();
values.put("fk_vhc_fa", fkVhcFac);
values.put("fk_gar_fa", fkGarFac);
values.put("date_fa", dateFac);
values.put("libelle_fa", libelleFac);
values.put("remarque_fa", remarqueFac);
values.put("kilometrage_fa", kmFac);
values.put("montant_fa", montantFac);
values.put("date_paie_fa", datePaieFac);
return db.insert("TB_FACTURE", null, values);
}
Спасибо за вашу помощь!
PS: Я уточняю, что я не использую настоящие ИНОСТРАННЫЕ КЛЮЧИ, а метод триггера, который выглядит следующим образом:
"fk_gar_fa INTEGER CONSTRAINT ct_fk_gar_fa REFERENCES TB_GARAGE(_id),"