L'utilisation d'une clause WHERE dans une instruction MySQL INSERT entraîne une erreur. En effet, la clause WHERE est spécifiquement conçue pour les opérations UPDATE et DELETE, et non pour les INSERT.
La requête fournie vise probablement soit à ajouter un nouvel utilisateur, soit à modifier un utilisateur existant. Clarifions les deux scénarios :
Pour insérer un nouvel utilisateur avec l'ID 1, la syntaxe MySQL correcte est :
<code class="language-sql">INSERT INTO Users (id, weight, desiredWeight) VALUES (1, 160, 145);</code>
Cela attribue directement des valeurs à id
, weight
et desiredWeight
, créant ainsi un nouvel enregistrement utilisateur.
Si l'objectif est de mettre à jour un utilisateur existant, utilisez l'instruction UPDATE :
<code class="language-sql">UPDATE Users SET weight = 160, desiredWeight = 145 WHERE id = 1;</code>
Cela modifie le weight
et le desiredWeight
pour l'utilisateur avec id = 1
sans affecter les autres entrées.
Pour gérer à la fois l'insertion et la mise à jour en fonction de l'existence d'un enregistrement, envisagez ces alternatives :
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>
Cela insère une nouvelle ligne si la clé n'existe pas ; sinon, il met à jour la ligne existante.
INSERT ... SET
: (Bien que fonctionnellement similaire à la méthode VALUES ci-dessus, cette syntaxe est souvent moins préférée pour des raisons de clarté)Rappelez-vous : si id
est une colonne à incrémentation automatique, vous pouvez l'omettre de l'instruction INSERT ; MySQL générera automatiquement un identifiant unique.
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!