Maison > base de données > tutoriel mysql > Comment effectuer des insertions conditionnelles dans MySQL pour éviter les entrées en double ?

Comment effectuer des insertions conditionnelles dans MySQL pour éviter les entrées en double ?

Linda Hamilton
Libérer: 2024-12-13 09:54:14
original
465 Les gens l'ont consulté

How to Perform Conditional Inserts in MySQL to Avoid Duplicate Entries?

Insertion conditionnelle dans MySQL

L'insertion de données dans une table avec des conditions spécifiques peut être réalisée à l'aide d'instructions INSERT conditionnelles. Cela devient particulièrement utile lorsque vous souhaitez éviter les entrées en double ou garantir l'intégrité des données. Un de ces scénarios consiste à insérer une nouvelle ligne uniquement si l'utilisateur donné ne possède pas déjà un élément spécifique.

Pour réaliser une insertion conditionnelle dans MySQL, envisagez les étapes suivantes :

  • Créez une x_table avec des colonnes (instance, utilisateur, élément) : assurez-vous que la colonne d'instance a un index unique pour éviter les doublons entrées.
  • Créez une instruction INSERT conditionnelle : utilisez la syntaxe suivante pour insérer une nouvelle ligne uniquement si la condition spécifiée est remplie :
INSERT INTO x_table (instance, user, item) 
SELECT <instance_value>, <user_value>, <item_value>
FROM dual
WHERE NOT EXISTS (SELECT * FROM x_table
                     WHERE user = <user_value> 
                       AND item = <item_value>)
Copier après la connexion
  • Remplacer les espaces réservés : remplacez , et avec les valeurs réelles que vous souhaitez insérer. Par exemple, pour insérer instance=919191, user=123 et item=456, l'instruction serait :
INSERT INTO x_table (instance, user, item) 
SELECT 919191, 123, 456
FROM dual
WHERE NOT EXISTS (SELECT * FROM x_table
                     WHERE user = 123 
                       AND item = 456)
Copier après la connexion

Cette instruction n'insérera une nouvelle ligne que si la combinaison de user=123 et item=456 n'existe pas déjà dans x_table. Si une telle ligne existe, l'insertion sera ignorée.

  • Utiliser en plus : Si votre SGBD impose des restrictions sur la sélection à partir d'autres tables lors de l'insertion, vous pouvez explorer l'instruction MERGE comme une alternative à l'INSERT conditionnel.

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