Hallo Leute,
wie ihr es aus dem Titel schon entnehmen könnt, erstellt INSERT OR REPLACE INTO ein neuen Eintrag ins Datenbank obwohl dieser schon existiert...
Die Tabelle hat folgende Spalten : rowid(PK), tableId, productId, amaunt
Ich möchte falls der Datensatz mit dem tableId und dem productId schon vorhanden ist, die amaunt um amaunt vergrößern
Mein Statement sieht wie folgt aus:
Ich füge als erstes diesen Datensatz ein:
tableId: 0
productId: 13
amaunt: 1
Wenn ich o.g. stmt.execute durchführe (mit amaunt=1) macht der Datenbank ein neuen Datensatz und fügt
tableId: 0
productId: 13
amaunt: 2
und im Datenbank steht nun:
rowId tableId productId amaunt
1 0 13 1
2 0 13 2
wie ihr es aus dem Titel schon entnehmen könnt, erstellt INSERT OR REPLACE INTO ein neuen Eintrag ins Datenbank obwohl dieser schon existiert...
Die Tabelle hat folgende Spalten : rowid(PK), tableId, productId, amaunt
Ich möchte falls der Datensatz mit dem tableId und dem productId schon vorhanden ist, die amaunt um amaunt vergrößern
Mein Statement sieht wie folgt aus:
Code:
stmt.execute("INSERT OR REPLACE INTO 'main'.'cancel_order' ('tableId','productId','amaunt')VALUES ("+tableId+","+productId+",(SELECT CASE WHEN exists"
+ "(SELECT amaunt FROM 'main'.'cancel_order' WHERE productId="+productId+" AND tableId = "+tableId+") THEN (SELECT amaunt FROM 'main'.'cancel_order' "
+ "WHERE productId="+productId+" AND tableId = "+tableId+")+"+amaunt+" ELSE "+amaunt+" END));");
Ich füge als erstes diesen Datensatz ein:
tableId: 0
productId: 13
amaunt: 1
Wenn ich o.g. stmt.execute durchführe (mit amaunt=1) macht der Datenbank ein neuen Datensatz und fügt
tableId: 0
productId: 13
amaunt: 2
und im Datenbank steht nun:
rowId tableId productId amaunt
1 0 13 1
2 0 13 2