Maison >base de données >tutoriel mysql >Comment éviter les valeurs en double lors de l'insertion de données dans une table « Délégués » ?

Comment éviter les valeurs en double lors de l'insertion de données dans une table « Délégués » ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-01 08:08:30971parcourir

How to Prevent Duplicate Values During Data Insertion in a

Empêcher les valeurs en double lors de l'insertion de données

Énoncé du problème :

Dans une table nommée " Délégués", qui contient des informations uniques sur les membres ainsi que des champs de plage "FromYr" et "ToYr", l'insertion de données à l'aide des entrées de l'utilisateur risque la duplication des membres pour la même année.

Solution :

Pour résoudre ce problème et garantir l'intégrité des données, nous pouvons tirer parti de l'instruction MERGE. L'instruction MERGE nous permet d'effectuer une insertion conditionnelle, en mettant à jour l'enregistrement uniquement s'il n'existe pas déjà dans la table.

Implémentation :

<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>

Explication :

  • MERGE INTO : Cette instruction spécifie la table cible ("Délégués") à mettre à jour ou dans laquelle insérer.
  • USING :Cette clause définit les données source ("X") comparées à la table cible.
  • ON : Les critères de jointure spécifient les conditions dans lesquelles les lignes doivent correspondre lors de l'opération de fusion. Dans ce cas, la clé de jointure unique (par exemple, MemberNo et année) est utilisée pour identifier lorsqu'une ligne existe déjà.
  • WHEN NOT MATCHED BY TARGET THEN : Cette instruction définit l'action à être prise si aucune ligne correspondante n’est trouvée dans la table cible. Dans ce cas, un INSERT est effectué pour ajouter la nouvelle ligne.

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!

Déclaration:
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