Maison > développement back-end > tutoriel php > 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
Libérer: 2024-10-31 02:48:02
original
414 Les gens l'ont consulté

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');
Copier après la connexion

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');
Copier après la connexion

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';
Copier après la connexion

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);
    Copier après la connexion

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

  • INSÉRER IGNORE :

    INSERT IGNORE INTO tbl VALUES (1, 10);
    Copier après la connexion

    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;
    Copier après la connexion

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