ContentValues values = new ContentValues(); values.put("changed", changed ? "1" : "0"); long affectedRows = database.update("my_table", values, "id = ?", new String[]{Integer.toString(id)});
Sur une clé primaire avec un seul row attendu et existant, cette méthode, retourne toujours 1,
- que la valeur d’origine soit différente
- que la valeur d’origine soit identique !
Il en est de même pour la méthode SQL changes(), elle retourne le nombre de lignes possibles à modifiées, et non pas le nombre de ligne réellement modifiées.
Ce comportement, est identique à JDBC. Alors que PHP via PDO par exemple retourne le nombre réel de row modifiés.