Maison  >  Article  >  développement back-end  >  Comment gérer les entrées en double lors de l'insertion de données dans MySQL ?

Comment gérer les entrées en double lors de l'insertion de données dans MySQL ?

Barbara Streisand
Barbara Streisandoriginal
2024-10-31 02:48:02316parcourir

How to Handle Duplicate Entries When Inserting Data into MySQL?

MySQL - Gestion des entrées en double lors de l'insertion

Lors de l'insertion d'enregistrements dans une base de données contenant des champs uniques, il est courant de rencontrer des entrées en double erreurs. Ces erreurs peuvent perturber les opérations d'insertion par lots, où seuls les nouveaux enregistrements doivent être insérés.

Insérer avec Ignore

MySQL fournit la syntaxe INSERT...IGNORE, ce qui permet aux insertions de se poursuivre sans générer d'erreur lorsqu'une entrée en double est rencontrée. Par exemple :

INSERT IGNORE INTO tbl (id, name) VALUES (1, 'John Doe');

Si une entrée avec id=1 existe déjà, l'instruction s'exécutera avec succès sans insérer de nouvelle ligne.

Replace

La syntaxe REPLACE INTO écrase un enregistrement existant par un nouveau qui a la même clé primaire. Cela peut être utile si vous souhaitez vous assurer que les dernières données sont stockées dans la table :

REPLACE INTO tbl (id, name) VALUES (1, 'Jane Doe');

Dans ce cas, si id=1 existe, l'ancien enregistrement sera supprimé et le nouveau sera inséré.

Insérer avec ON DUPLICATE KEY UPDATE

La syntaxe INSERT...ON DUPLICATE KEY UPDATE permet de spécifier une action à effectuer en cas d'entrée en double est rencontré. Par exemple, vous pouvez mettre à jour l'enregistrement existant :

INSERT INTO tbl (id, name) VALUES (1, 'Alice Smith') ON DUPLICATE KEY UPDATE name = 'Alice Smith';

Si id=1 existe, le nom de l'enregistrement existant sera mis à jour en « Alice Smith ».

Examples< /h4>

Considérons une table nommée tbl avec des colonnes id et value, contenant une ligne : (1, 1).

  • REPLACE :

    REPLACE INTO tbl VALUES (1, 50);

    Résultat : (1, 50) (remplace l'enregistrement existant)

  • INSÉRER IGNORE :

    INSERT IGNORE INTO tbl VALUES (1, 10);

    Résultat : Aucun changement (ignore l'entrée en double)

  • INSÉRER AVEC LA MISE À JOUR DE LA CLÉ EN DUPLICATE :

    INSERT INTO tbl VALUES (1, 200) ON DUPLICATE KEY UPDATE value = 200;

    Résultat : (1 , 200) (met à jour l'enregistrement existant)

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