Android的SQLite数据库更新方法

问题描述:

也许这个问题已经回答了,但我不能找到它,所以:如果WHERE子句不存在Android的SQLite数据库更新方法

在SQLiteDatabase更新方法,

int android.database.sqlite.SQLiteDatabase.update(String table, ContentValues values, String whereClause, String[] whereArgs) 

会发生什么事?我的意思是不会返回任何一行, 它会执行正常的插入,还是什么都不做?

编辑

我觉得我没有正确地解释它。

假设这个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

谢谢@Pragnani我没有注意到。 – 2013-03-17 12:41:48

+0

它说在参数'whereClause'的文档中是正确的http://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.html#update(java.lang.String,android.content.ContentValues,java .lang.String,java.lang.String []) – 2013-03-17 12:48:24

+0

你现在应该删除这个问题 – 2013-03-17 12:48:40

编辑:

它会检查是否有与日行= '15/03/2013,如果没有行,然后 没有行会影响和更新方法将返回0


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

这只是一个SQL的东西,就像你没有提供条件它会更新所有行一样。 文档明确说,

参数

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

SqlliteData Update

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

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