Android SQLite数据库更新方法

时间:2013-03-17 12:39:31

标签: android sqlite sql-update where

也许这个问题已得到解答,但我找不到,所以:

在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'的行,那么,在那种情况下会发生什么(这就是我想要的意思)它会插入或什么都不做?

2 个答案:

答案 0 :(得分:1)

编辑:

如果没有行,它会检查是否有一行date = '15 / 03/2013, 然后没有行会生效,更新方法将返回0


如果我理解你的问题, 其中claus是可选的,它可以为null,如果你不提供where子句,它将更新表中的所有行。

这只是一个sql的事情,就好像你不提供条件会更新所有行。 文件清楚地说明了,

参数

whereClause在更新时应用可选的WHERE子句。传递null将更新所有行。

SqlliteData Update

答案 1 :(得分:0)

如果您不使用WHERE条款all the records on the table will be affected

whereClause 更新时要应用的可选WHERE子句。传递null将更新所有行。