![](/img/trans.png)
[英]How to insert data into a SQLite Database only if the value does not exist?
[英]How to Insert a value where not exist in SQLite Android
我只想在表中不存在值時才將值插入表中。
String CREATETABLE = "CREATE TABLE contacts ( " +
"id INTEGER PRIMARY KEY AUTOINCREMENT, " +
"name TEXT, "+
"phone TEXT )";
這是我創建表的代碼,我使用了UNIQUE(phone),但是它不起作用。
並添加一個新的聯系人,我正在使用此代碼:
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);
我認為沒有不首先檢索該行的方法。 您查詢數據庫以查找該特定聯系人(您必須指定至少一列是唯一的,或將列的任何組合指定為主鍵),否則您將如何處理兩個同名的人?
因此,您查詢並搜索所需的人員,如果找到所需人員,請檢查該列是否為空,並且a)插入是否為空,b)忽略是否為空。 如果查詢找不到任何人,則無法插入。
關於唯一約束,如下所示:
String CREATETABLE = "CREATE TABLE contacts ( " +
"id INTEGER PRIMARY KEY AUTOINCREMENT, " +
"name TEXT, " +
"phone TEXT UNIQUE)";
在您的示例中,您正在使用SQLiteDatabase.insert()
,嘗試將SQLiteDatabase.insertWithOnConflict()
與值CONFLICT_IGNORE
, CONFLICT_REPLACE
或其他值之一一起使用。
還可以看看將數據庫實現為ContentProvider
,這很難理解,但確實很了解。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.