La requête MySQL INSERT est en conflit avec la clause WHERE
Lorsque vous essayez d'insérer des données dans une base de données MySQL à l'aide d'une requête similaire à :
<code class="language-sql">INSERT INTO Users( weight, desiredWeight ) VALUES ( 160, 145 ) WHERE id = 1;</code>
Vous pouvez recevoir un message d'erreur si une clause WHERE est présente. En effet, la syntaxe INSERT de MySQL ne prend pas en charge la clause WHERE.
Nouvelle ligne
Si l'intention est de créer une nouvelle ligne avec un ID spécifié, la requête correcte ressemblerait à ceci :
<code class="language-sql">INSERT INTO Users(id, weight, desiredWeight) VALUES(1, 160, 145);</code>
Mettre à jour la ligne existante
Pour modifier la valeur dans une ligne existante, l'instruction UPDATE doit être utilisée :
<code class="language-sql">UPDATE Users SET weight = 160, desiredWeight = 145 WHERE id = 1;</code>
INSÉRER... SUR LA CLÉ EN DOUBLE
Vous pouvez également utiliser la syntaxe INSERT ... ON DUPLICATE KEY pour insérer ou mettre à jour des lignes en fonction d'une clé unique ou primaire :
<code class="language-sql">INSERT INTO Users (id, weight, desiredWeight) VALUES(1, 160, 145) ON DUPLICATE KEY UPDATE weight=160, desiredWeight=145</code>
Utiliser la colonne à incrémentation automatique
Si la colonne id de la table est définie sur incrémentation automatique, vous pouvez l'omettre de la requête INSERT et laisser MySQL gérer l'incrément :
<code class="language-sql">INSERT INTO Users SET weight=160, desiredWeight=145</code>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!