我想用新值更新现有表格,但其中一些是新鲜的。我已经编写了更新表的代码,但是如何同时执行这两个操作(更新和插入)。
答案 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以外的列,您可以在其中进行检查。我将用户名作为唯一列来检查现有记录。
希望这有帮助。