Maison > base de données > tutoriel mysql > Pourquoi ma requête MySQL INSERT échoue-t-elle lors de l'utilisation d'une clause WHERE ?

Pourquoi ma requête MySQL INSERT échoue-t-elle lors de l'utilisation d'une clause WHERE ?

DDD
Libérer: 2025-01-19 06:52:12
original
932 Les gens l'ont consulté

Why Does My MySQL INSERT Query Fail When Using a WHERE Clause?

Dépannage des instructions MySQL INSERT et des clauses WHERE

L'instruction INSERT de MySQL ne prend pas en charge une clause WHERE. Tenter d’en utiliser un entraînera une erreur. La clause WHERE est utilisée pour filtrer les données dans les instructions SELECT, UPDATE et DELETE, et non pour l'insertion.

Examinons un scénario courant :

<code class="language-sql">INSERT INTO Users (weight, desiredWeight) VALUES (160, 145) WHERE id = 1;</code>
Copier après la connexion

Cette requête vise à ajouter une nouvelle ligne uniquement si une ligne avec id = 1 existe, mettant ainsi à jour efficacement cette ligne. C'est une INSERT utilisation incorrecte.

Approches correctes :

La solution dépend du résultat souhaité :

  • Ajout d'une nouvelle ligne : Pour insérer une nouvelle ligne, comprenant un id, utilisez :
<code class="language-sql">INSERT INTO Users (id, weight, desiredWeight) VALUES (1, 160, 145);</code>
Copier après la connexion
  • Modifier une ligne existante : Pour mettre à jour une ligne existante, utilisez UPDATE:
<code class="language-sql">UPDATE Users SET weight = 160, desiredWeight = 145 WHERE id = 1;</code>
Copier après la connexion
  • Insérer ou mettre à jour (Conditionnel) : Pour insérer une nouvelle ligne ou mettre à jour une ligne existante en fonction d'une clé unique, utilisez 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>
Copier après la connexion
  • ID à incrémentation automatique : Si id est une colonne à incrémentation automatique, omettez-la de l'instruction INSERT :
<code class="language-sql">INSERT INTO Users (weight, desiredWeight) VALUES (160, 145);</code>
Copier après la connexion

En employant la commande SQL correcte, vous éviterez les erreurs et réaliserez la manipulation des données prévue dans votre base de données MySQL.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal