2016-09-01 1 views
1

Mithilfe der Funktion SQLite db.update können wir einen Datensatz ändern, der absolute Werte für Datensätze angibt, die die WHERE-Klausel erfüllen. Für die Ex:Android SQLite relative Erhöhung des Spaltenwerts

ContentValues cv = new ContentValues(); 
cv.put("id",111); 
cv.put("Field1",10); 
cv.put("Field2",100); 

Aber, wie soll ich sagen Field1 = Field1 + 5, ohne dass eine separate Auswahlabfrage in einem der vorhandenen Field1 Wert oder mit db.execSQL(updateQuery) zu holen? (Ich möchte absichtlich db.execSQL für Update-Operationen zu vermeiden)

Ich möchte eine separate Abfrage vermeiden, weil, wenn mehrere Threads Update auf demselben Datensatz durchführen, könnte es Probleme mit dem gemeinsamen Zugriff geben.

Antwort

2

Mit der Methode der execSQL()SQLiteDatabase:

String increment = "UPDATE " 
     + YOUR_TABLE + " SET " 
     + YOUR_COLUMN + " = " 
     + YOUR_COLUMN + " + 5"; 

db.execSQL(increment);