Heim >Datenbank >MySQL-Tutorial >Warum schlägt meine MySQL-INSERT-Abfrage fehl, wenn ich eine WHERE-Klausel verwende?
Fehlerbehebung bei MySQL INSERT-Anweisungen und WHERE-Klauseln
MySQLs INSERT
-Anweisung unterstützt keine WHERE
-Klausel. Der Versuch, eines zu verwenden, führt zu einem Fehler. Die WHERE
-Klausel wird zum Filtern von Daten in SELECT
-, UPDATE
- und DELETE
-Anweisungen verwendet, nicht zum Einfügen.
Lassen Sie uns ein häufiges Szenario untersuchen:
<code class="language-sql">INSERT INTO Users (weight, desiredWeight) VALUES (160, 145) WHERE id = 1;</code>
Diese Abfrage zielt darauf ab, nur dann eine neue Zeile hinzuzufügen, wenn eine Zeile mit id = 1
vorhanden ist, wodurch diese Zeile effektiv aktualisiert wird. Dies ist eine falsche INSERT
Verwendung.
Richtige Ansätze:
Die Lösung hängt von Ihrem gewünschten Ergebnis ab:
id
, einzufügen, verwenden Sie:<code class="language-sql">INSERT INTO Users (id, weight, desiredWeight) VALUES (1, 160, 145);</code>
UPDATE
:<code class="language-sql">UPDATE Users SET weight = 160, desiredWeight = 145 WHERE id = 1;</code>
INSERT ... ON DUPLICATE KEY UPDATE
:<code class="language-sql">INSERT INTO Users (id, weight, desiredWeight) VALUES (1, 160, 145) ON DUPLICATE KEY UPDATE weight = 160, desiredWeight = 145;</code>
id
eine automatisch inkrementierende Spalte ist, lassen Sie sie in der INSERT
-Anweisung weg:<code class="language-sql">INSERT INTO Users (weight, desiredWeight) VALUES (160, 145);</code>
Durch die Verwendung des richtigen SQL-Befehls vermeiden Sie Fehler und erreichen die beabsichtigte Datenmanipulation in Ihrer MySQL-Datenbank.
Das obige ist der detaillierte Inhalt vonWarum schlägt meine MySQL-INSERT-Abfrage fehl, wenn ich eine WHERE-Klausel verwende?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!