2015-01-26 27 views
1

只有當表中不存在值時,纔想將值插入到表中。如何插入SQLite中不存在的值Android

String CREATETABLE = "CREATE TABLE contacts (" + 
       "id INTEGER PRIMARY KEY AUTOINCREMENT, " + 
       "name TEXT, "+ 
       "phone TEXT)"; 

這是我的代碼來創建表,我用UNIQUE(電話),它不工作。

,並增加我使用此代碼新聯繫人:

ContentValues values = new ContentValues(); 
values.put("name", contact.getName()); // get title 
values.put("phone", contact.getNumero()); // get author 
// 3. insert 
db.insert("contacts", // table 
     null, //nullColumnHack 
     values); 

回答

2

我不認爲有這樣的一種方式,而無需首先檢索該行。您查詢數據庫尋找特定的聯繫人(您必須指定至少一列是唯一的,或者任何列的組合都是主鍵),否則如何處理具有相同名稱的兩個人?

所以你查詢和搜索所需的人,如果你找到它,檢查列是否爲空,並且a)如果是,插入b)如果不是,則忽略。如果查詢沒有找到任何人,你不能插入。

關於唯一約束,它是這樣的:

String CREATETABLE = "CREATE TABLE contacts (" + 
     "id INTEGER PRIMARY KEY AUTOINCREMENT, " + 
     "name TEXT, " + 
     "phone TEXT UNIQUE)";