Maison > base de données > tutoriel mysql > le corps du texte

Comment éviter les valeurs en double lors de l'INSERT dans SQL ?

Barbara Streisand
Libérer: 2024-10-31 08:30:02
original
866 Les gens l'ont consulté

How to Prevent Duplicate Values during INSERT in SQL?

Prévention des valeurs en double lors de l'INSERT dans SQL

Étant donné une table "Délégués" avec les colonnes "ID", "MemberNo", "FromYr, " et "ToYr", l'utilisateur doit empêcher l'insertion de valeurs en double provenant de sa saisie. La requête d'origine, INSERT INTO Delegates ([MemNo],[FromYr],[ToYr]) valeurs (@MemNo, @FromYr,@ToYr), permet des entrées en double pour le même membre et la même année.

À Pour résoudre ce problème, l'utilisateur peut utiliser la commande MERGE. MERGE combine les fonctionnalités des instructions INSERT, UPDATE et DELETE en une seule opération. L'instruction MERGE suivante permettra d'obtenir le comportement souhaité :

<code class="sql">MERGE INTO Delegates D
USING (values(@MemNo, @FromYr,@ToYr)) X ([MemNo],[FromYr],[ToYr])
ON (insert unique key join)
WHEN NOT MATCHED BY TARGET THEN
INSERT ([MemNo],[FromYr],[ToYr]))
VALUES (X.[MemNo],X.[FromYr],X.[ToYr]);</code>
Copier après la connexion

Cette instruction MERGE effectue les opérations suivantes :

  • Elle tente d'abord de joindre les lignes de la table "Délégués" (D ) avec les valeurs fournies par l'utilisateur (X).
  • Si une correspondance est trouvée (en fonction de la condition de jointure spécifiée, qui doit être une clé unique), elle met à jour l'existant rangée.
  • Si aucune correspondance n'est trouvée, il insère une nouvelle ligne avec les valeurs de X.

En utilisant cette instruction MERGE, l'utilisateur peut s'assurer que les valeurs en double ne sont pas insérées dans le tableau "Délégués".

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!