簡體   English   中英

如何在SQLite Android中不存在的位置插入值

[英]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_IGNORECONFLICT_REPLACE或其他值之一一起使用。

還可以看看將數據庫實現為ContentProvider ,這很難理解,但確實很了解。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM