2013-03-17 166 views
1

也許這個問題已經回答了,但我不能找到它,所以:如果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

回答

1

編輯:

它會檢查是否有與日行= '15/03/2013,如果沒有行,然後 沒有行會影響和更新方法將返回0


如果我理解你的問題, 其中claus是可選的,如果你不提供where子句它將更新表中的所有行,它可能爲空。

這只是一個SQL的東西,就像你沒有提供條件它會更新所有行一樣。 文檔明確說,

參數

whereClause可選更新時WHERE子句適用。傳遞null將更新所有行。

SqlliteData Update