2014-09-06 174 views
0

在我的android應用程序中,我在onCreate()方法中創建了一個sqlite數據庫,它充滿了我從服務器上的csv文件獲取的信息。我的問題是,每次啓動應用程序,我的數據庫再次充滿相同的信息(所以如果應用程序啓動3次,我將我的數據庫填充3次相同的數據)。數據庫sqlite android重寫

首先推出:

ID   NAME  AGE   ADDRESS  SALARY 
---------- ---------- ---------- ---------- ---------- 
1   Paul  32   California 20000.0 
2   Allen  25   Texas  15000.0 

二:

ID   NAME  AGE   ADDRESS  SALARY 
---------- ---------- ---------- ---------- ---------- 
1   Paul  32   California 20000.0 
2   Allen  25   Texas  15000.0 
1   Paul  32   California 20000.0 
2   Allen  25   Texas  15000.0 

三:

ID   NAME  AGE   ADDRESS  SALARY 
---------- ---------- ---------- ---------- ---------- 
1   Paul  32   California 20000.0 
2   Allen  25   Texas  15000.0 
3   Paul  32   California 20000.0 
4   Allen  25   Texas  15000.0 
5   Paul  32   California 20000.0 
6   Allen  25   Texas  15000.0 

我該如何處理這種情況呢?我希望我的數據庫只會在csv中的數據不在數據庫中時填充。

有什麼想法?

+2

是的。使用'REPLACE'而不是'INSERT'。已經存在的項目將被**更新**(即使它們具有相同的值),而不存在的項目將被插入**。 – 2014-09-06 10:12:34

+0

會每次替換現有的列創建不需要的CPU開銷? – 2014-09-06 10:26:04

+0

不,剛剛嘗試db.replace(TABLE_NAME,null,contentValues)而不是db.insert,我得到同樣的問題 – slash89mf 2014-09-06 10:31:56

回答

0
Cursor cursor = mDB.rawQuery("select ID from TABLE where ID = 1;", null); 

if(cursor.getCount()==0) 
{ 
    // now you can insert the record 
} 
else 
{ 
    // your handle 
}