2017-02-14 31 views
0

我有三個表:症狀,疾病,symDisease插入的特定陣列id值,其未在表A中存在,並且在表中插入乙

| Disease |  | Symptoms |  | symDisease | 
---------------  --------------  ---------------- 
| id(pk) |  | id(pk) |  | diseaseId(fk)| 
| name  |  | symp |  | symptomId(fk)| 

代碼,在陣列和插入檢查的值存在到數據庫中:

public Cursor checkExistence(){ 
    Cursor c=null; 
    String[] values={"headache","heartburns"}; 
    SQLiteDatabase db= getReadableDatabase(); 

    db.beginTransaction(); 
    try { 
     for (String value : values) { 
      long count = DatabaseUtils.queryNumEntries(db, 
        TABLE_SYMPTOMS, COLUMN_SYMP+" = ?", new String[] { value }); 
      if (count == 0) { 
       ContentValues cv = new ContentValues(); 
       cv.put(COLUMN_SYMP, value); 
       db.insert(TABLE_SYMPTOMS, null, cv); 
      } 
     } 
     db.setTransactionSuccessful(); 
    } finally { 
     db.endTransaction(); 
    } 

    return c; 

} 

上述檢查該代碼,以查看是否在表的症狀存在於String[] values={"headache","heartburns"};值。在這種情況下,headache存在,但heartburns不存在於表症狀中,因此它被插入到表中。

現在想獲得heartburns的編號,並將其插入表symDisease以及diseaseid。例如diseaseid of Malaria = 1。 因此,在表symDisease中插入的結尾應該是(idOfMalaria, idOfHeartburns)

回答

2

你可以插入該行的德ID:

long rowInserted = db.insert(TABLE_SYMPTOMS, null, cv); 
if (rowInserted != -1) { 
    //New row was added correctly, and the id of the inserted 
    //value is in rowInserted. 

}else{ 
    //Error on inserted 
} 
+0

感謝你一直很helpful.Made它的工作現在 – mcprilla79

+0

不錯! : ) 不客氣。 – Diekrul