Heim >Datenbank >MySQL-Tutorial >Warum schlägt meine MySQL-INSERT-Abfrage mit einer WHERE-Klausel fehl?

Warum schlägt meine MySQL-INSERT-Abfrage mit einer WHERE-Klausel fehl?

Barbara Streisand
Barbara StreisandOriginal
2025-01-19 06:26:13610Durchsuche

Why Does My MySQL INSERT Query Fail with a WHERE Clause?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn