Ich versuche, die effizienteste Logik für die nächste Situation zu finden.Android sql update oder einfügen
Ich möchte auf meiner Android-App in SQL am häufigsten verwendeten Funktionen/Aktionen von Benutzern zu implementieren.
dbase Struktur:
| _id | act_name (Text eindeutig) | Zähler (Ganzzahl) |
Code: (src https://stackoverflow.com/a/20568176/8006698)
int rowID = (int) db.insertWithOnConflict(TABLE_NAME, null, cv,SQLiteDatabase.CONFLICT_IGNORE);
if (rowID != -1){
myLog("Written to base with id = " + rowID);
} else {
db.execSQL("UPDATE stats SET counter=counter + 1 WHERE act_name = '" + mAction+"'");
myLog("stats updated");
}
Ich war überrascht, dass 'ExecSQL' nicht Wert zurückgibt als 'Update' Methode. Ich würde verwenden:
int rowID = db.update(...);
if (rowID == 0) {
//if not updated then insert
long insertedID = db.insert(...);
myLog("Inserted to base ");
} else
myLog("base updated");
kann aber hier nicht erhöhen zählen direkt als ‚Zähler = Zähler + 1‘ so habe ich ‚insertWithOnConflict‘ zu verwenden. Ich bin mir nicht sicher, ist es gute Praxis, es zu benutzen. Warte auf deine Ideen.
also alles, was Sie fragen, ist eine Möglichkeit, SQL mit 'Zähler + = 1' zu aktualisieren? –