Maison > base de données > tutoriel mysql > Comment simuler une mise à jour de clé en double avec LOAD DATA INFILE de MySQL ?

Comment simuler une mise à jour de clé en double avec LOAD DATA INFILE de MySQL ?

Linda Hamilton
Libérer: 2024-12-15 13:15:18
original
756 Les gens l'ont consulté

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

Émuler ON DUPLICATE KEY UPDATE avec MySQL LOAD DATA INFILE

Malgré son avantage en termes de vitesse pour charger de grands ensembles de données dans MySQL, LOAD DATA INFILE manque de natif prise en charge de la fonctionnalité ON DUPLICATE KEY UPDATE. Cette limitation pose des défis lors de la mise à jour des enregistrements existants sans remplacer les ID d'incrémentation automatique ni entraîner une surcharge inutile.

Solution :

Pour émuler ON DUPLICATE KEY UPDATE à l'aide de LOAD DATA INFILE, vous pouvez suivre ces étapes :

  1. Créer un compte temporaire Table :Construisez une table temporaire avec la même structure que la table cible à l'aide de CREATE TEMPORARY TABLE.
  2. Optimisez en option : Pour accélérer le processus, désactivez les index sur la table temporaire en exécutant Commandes DROP INDEX pour tous les index existants.
  3. Charger les données dans une table temporaire : Utiliser LOAD DATA INFILE pour importer les données CSV dans la table temporaire, en spécifiant les délimiteurs de champs et les annexes appropriés.
  4. Transférer les données avec ON DUPLICATE KEY UPDATE : Utiliser une instruction INSERT avec ON DUPLICATE KEY UPDATE pour copier les données de la table temporaire vers la table cible. Assurez-vous de faire correspondre correctement les noms de colonnes.
  5. Supprimer la table temporaire : Libérez la table temporaire en exécutant DROP TEMPORARY TABLE.

Cette approche exploite la vitesse de LOAD DATA INFILE tout en émulant la fonctionnalité ON DUPLICATE KEY UPDATE. En automatisant le processus avec SHOW INDEX FROM et SHOW COLUMNS FROM, vous pouvez facilement l'adapter à n'importe quelle table donné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!

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