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

DDD
Libérer: 2024-10-28 20:43:02
original
484 Les gens l'ont consulté

How to Handle Duplicate Entries During Mass Insertion in MySQL?

MySQL : ignorer les erreurs d'entrée en double lors de l'insertion en masse

Lors de l'insertion de plusieurs enregistrements dans une base de données avec un champ unique, la gestion des entrées en double devient nécessaire. En PHP, vous pouvez rencontrer le défi de prévenir les erreurs dues aux entrées en double.

Une approche consiste à effectuer une opération SELECT avant chaque INSERT, en vérifiant l'existence de l'entrée. Cependant, cette méthode peut s’avérer inefficace pour les grands ensembles de données. Heureusement, MySQL propose plusieurs solutions pour ignorer les entrées en double lors de l'insertion.

Syntaxe INSERT...IGNORE

La méthode la plus simple consiste à utiliser la syntaxe INSERT...IGNORE. Cela demande à MySQL de supprimer les entrées en double sans générer d'erreur. Par exemple :

INSERT IGNORE INTO tbl_name (field1, field2) VALUES (value1, value2);
Copier après la connexion

Syntaxe REPLACE INTO

Une autre option est la syntaxe REPLACE INTO. Cela écrasera les enregistrements existants avec la même clé primaire. Par exemple :

REPLACE INTO tbl_name (field1, field2) VALUES (value1, value2);
Copier après la connexion

INSERT...ON DUPLICATE KEY UPDATE Syntaxe

Enfin, vous pouvez utiliser la syntaxe INSERT...ON DUPLICATE KEY UPDATE pour effectuer une mise à jour sur un enregistrement existant au lieu d'insérer un double. Par exemple :

INSERT INTO tbl_name (field1, field2) VALUES (value1, value2) ON DUPLICATE KEY UPDATE field2 = value2;
Copier après la connexion

Exemples

Considérons une table nommée tbl avec deux colonnes, id et value. En supposant que la table contient initialement un seul enregistrement avec id=1 et value=1, le code suivant démontre les effets des différentes syntaxes :

-- REPLACE INTO
REPLACE INTO tbl VALUES (1, 50);

-- INSERT IGNORE
INSERT IGNORE INTO tbl VALUES (1, 10);

-- INSERT...ON DUPLICATE KEY UPDATE
INSERT INTO tbl VALUES (1, 200) ON DUPLICATE KEY UPDATE value = 200;
Copier après la connexion

Après ces opérations, la table contient un seul enregistrement avec id= 1 et valeur=200.

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal