Heim >Datenbank >MySQL-Tutorial >Warum schlägt meine MySQL-INSERT-Abfrage mit einer WHERE-Klausel fehl?
MySQL INSERT-Abfragekonflikt mit WHERE-Klausel
Beim Versuch, Daten mit einer Abfrage ähnlich der folgenden in eine MySQL-Datenbank einzufügen:
<code class="language-sql">INSERT INTO Users( weight, desiredWeight ) VALUES ( 160, 145 ) WHERE id = 1;</code>
Möglicherweise erhalten Sie eine Fehlermeldung, wenn eine WHERE-Klausel vorhanden ist. Dies liegt daran, dass die INSERT-Syntax von MySQL keine WHERE-Klausel unterstützt.
Neue Linie
Wenn die Absicht besteht, eine neue Zeile mit einer angegebenen ID zu erstellen, würde die korrekte Abfrage so aussehen:
<code class="language-sql">INSERT INTO Users(id, weight, desiredWeight) VALUES(1, 160, 145);</code>
Vorhandene Zeile aktualisieren
Um den Wert in einer vorhandenen Zeile zu ändern, sollte die UPDATE-Anweisung verwendet werden:
<code class="language-sql">UPDATE Users SET weight = 160, desiredWeight = 145 WHERE id = 1;</code>
INSERT ... ON DUPLICATE KEY
Alternativ können Sie die Syntax INSERT ... ON DUPLICATE KEY verwenden, um Zeilen basierend auf einem eindeutigen oder Primärschlüssel einzufügen oder zu aktualisieren:
<code class="language-sql">INSERT INTO Users (id, weight, desiredWeight) VALUES(1, 160, 145) ON DUPLICATE KEY UPDATE weight=160, desiredWeight=145</code>
Spalte mit automatischer Inkrementierung verwenden
Wenn die ID-Spalte in der Tabelle auf automatische Inkrementierung eingestellt ist, können Sie sie in der INSERT-Abfrage weglassen und MySQL die Inkrementierung überlassen:
<code class="language-sql">INSERT INTO Users SET weight=160, desiredWeight=145</code>
Das obige ist der detaillierte Inhalt vonWarum schlägt meine MySQL-INSERT-Abfrage mit einer WHERE-Klausel fehl?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!