Sqlite插入或更新

时间:2013-11-19 07:16:25

标签: android sqlite

我想用新值更新现有表格,但其中一些是新鲜的。我已经编写了更新表的代码,但是如何同时执行这两个操作(更新和插入)。

2 个答案:

答案 0 :(得分:1)

只需在SQLiteDatabase中使用replace()方法即可。如果数据库中不存在具有相同键的行,则只需插入新行。否则它将替换现有的行..它比其他方式简单..有关更多信息,请参阅文档..

http://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.html

答案 1 :(得分:0)

尝试这样的事情:

String username="xyzName";
Cursor cur_user = my_db.rawQuery("SELECT _id from user_info where user_name ='"
                                    + username + "'", null);
if (cur_user.getCount() > 0) {

    // User exists. Update information in database.
    ContentValues cvUserInfo = new ContentValues();
    cvUserInfo.put("status", status_id);
    String whereClause = "user_name = '" + username + "'";
    try {
        my_db.update("user_info", cvUserInfo, whereClause, null);
    } catch (Exception e) {
        e.printStackTrace();
    }
} else {

    // Insert the information in database.

    ContentValues cvUserInfo = new ContentValues();
    cvUserInfo.put("status", status_id);
    cvUserInfo.put("user_name", username);
    my_db.insert("user_info", null, cvUserInfo);
}

您需要有一个除id以外的列,您可以在其中进行检查。我将用户名作为唯一列来检查现有记录。

希望这有帮助。