Maison >base de données >tutoriel mysql >Comment puis-je simuler la MISE À JOUR DE CLÉ EN DUPLICATE de MySQL avec LOAD DATA INFILE ?

Comment puis-je simuler la MISE À JOUR DE CLÉ EN DUPLICATE de MySQL avec LOAD DATA INFILE ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-06 08:39:11265parcourir

How Can I Simulate MySQL's ON DUPLICATE KEY UPDATE with LOAD DATA INFILE?

Émuler la MISE À JOUR DE LA CLÉ EN DUPLICATE de MySQL avec LOAD DATA INFILE

LOAD DATA INFILE reste l'approche prédominante pour importer rapidement des ensembles de données substantiels dans MySQL. Son efficacité peut s'avérer insuffisante lorsqu'on cherche à implémenter des comportements analogues à INSERT IGNORE ou REPLACE, car la prise en charge de ON DUPLICATE KEY UPDATE est absente. Néanmoins, ON DUPLICATE KEY UPDATE offre des avantages par rapport à REPLACE, en évitant les pénalités de performances associées aux suppressions et aux insertions en cas de doublons, ainsi qu'en préservant les ID d'auto-incrémentation.

Pour émuler la fonctionnalité ON DUPLICATE KEY UPDATE lors des opérations LOAD DATA INFILE, suivez ces étapes :

  1. Établir un compte temporaire Table : Créez une table temporaire appelée 'temporary_table' partageant la même structure que la table cible 'target_table'.
  2. Facultatif : désactivez les indices : Pour optimiser les performances, éliminez les indices du table temporaire en utilisant des commandes comme 'DROP INDEX' contre les indices 'PRIMARY' et 'some_other_index'.
  3. Charger les données dans la table temporaire : Exécutez la commande LOAD DATA INFILE pour charger le fichier CSV dans la table temporaire.
  4. Copiez les données avec ON DUPLICATE KEY UPDATE : Utilisez une instruction INSERT qui inclut la clause ON DUPLICATE KEY UPDATE pour copiez les données de la table temporaire vers la table cible, en mettant à jour les valeurs de clé en double.
  5. Supprimer la table temporaire : Une fois le transfert de données terminé, supprimez la table temporaire.

L'utilisation des commandes 'SHOW INDEX FROM' et 'SHOW COLUMNS FROM' permet l'automatisation de ce processus pour n'importe quelle table spécifiée.

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