2015-01-26 39 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)";