Für meine Anwendung muss ich prüfen, ob Daten für eine Spalte existieren. Wenn vorhanden, fügen Sie sonst einen Wert 10 zu dem bestehenden Wert einen neuen Eintrag einfügenDatenbank aktualisieren wenn Daten vorhanden sind sonst In MySQL in einem einzigen Schritt einfügen
Ich versuche, so etwas wie dieses
UPDATE reporting set column_name1 = column_name1 + 10 WHERE column_name2 = "201";
IF ROW_COUNT()=0 THEN
INSERT INTO reporting (column_name1,column_name2) VALUES (15,201);
END IF
In meiner Tabelle column_name2 ist kein Primärschlüssel, und ich habe deaktiviert Sichere Prüfungen. aus diesem Grund kann ich nicht DUPLICATE KEY constraint.For dieser Abfrage verwenden, erhalte ich Syntaxfehler:
Error Code: 1064. You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'IF @@ROWCOUNT=0 THEN INSERT INTO reporting (identifier,_9_2017) ' at line 1
die Syntax der If-Anweisung zu dem in MySQL Dokumentation https://dev.mysql.com/doc/refman/5.7/en/if.html ähnlich ist. Es gibt einige Fragen dazu in diesem Portal, aber ich konnte die richtige Antwort nicht finden (UPDATE if exists else INSERT in SQL). Wo gehe ich hier falsch?
verwenden, wenn dies auf Ihre Situation zutrifft, aber MySQL hat eine 'INTO' REPLACE-Klausel, die Updates, wenn vorhanden, und Einsätze, wenn nicht. Sie können hier lesen: https://dev.mysql.com/doc/refman/5.7/en/replace.html –