也许这个问题已得到解答,但我找不到,所以:
在SQLiteDatabase更新方法中,
int android.database.sqlite.SQLiteDatabase.update(String table, ContentValues values, String whereClause, String[] whereArgs)
如果WHERE子句不存在会发生什么?我的意思是不回任何一行, 它会执行正常插入,还是什么都不做?
修改
我想我没有正确解释。
假设这个SQL:
CREATE TABLE weight (weight REAL, date TEXT);
INSERT INTO weight VALUES (78.5,"10/03/2013");
INSERT INTO weight VALUES (68.5,"09/03/2013");
INSERT INTO weight VALUES (79.5,"08/03/2013");
现在假设这段代码:
ContentValues values = new ContentValues();
values.put("weight", 90.2);
db.update("weight",values, "date = '15/03/2013'",null);
注意没有日期= '15 / 03/2013'的行,那么,在那种情况下会发生什么(这就是我想要的意思)它会插入或什么都不做?
答案 0 :(得分:1)
编辑:
如果没有行,它会检查是否有一行date = '15 / 03/2013, 然后没有行会生效,更新方法将返回0
如果我理解你的问题, 其中claus是可选的,它可以为null,如果你不提供where子句,它将更新表中的所有行。
这只是一个sql的事情,就好像你不提供条件会更新所有行。 文件清楚地说明了,
参数
whereClause在更新时应用可选的WHERE子句。传递null将更新所有行。
答案 1 :(得分:0)
如果您不使用WHERE
条款all the records on the table will be affected
whereClause 更新时要应用的可选WHERE子句。传递null将更新所有行。