Maison > base de données > tutoriel mysql > Comment puis-je imiter la mise à jour d'une clé en double en utilisant LOAD DATA INFILE dans MySQL ?

Comment puis-je imiter la mise à jour d'une clé en double en utilisant LOAD DATA INFILE dans MySQL ?

Susan Sarandon
Libérer: 2024-12-27 00:32:14
original
776 Les gens l'ont consulté

How Can I Mimic ON DUPLICATE KEY UPDATE Using LOAD DATA INFILE in MySQL?

Émuler ON DUPLICATE KEY UPDATE avec LOAD DATA INFILE dans MySQL

LOAD DATA INFILE dans MySQL est un outil puissant pour importer rapidement de grands ensembles de données. Cependant, il ne prend pas en charge la clause ON DUPLICATE KEY UPDATE, ce qui peut entraîner des incohérences de données ou des problèmes de performances. Pour contourner cette limitation, une approche alternative est nécessaire.

Pour émuler la fonctionnalité ON DUPLICATE KEY UPDATE, envisagez les étapes suivantes :

1. Créer une table temporaire :

CREATE TEMPORARY TABLE temporary_table LIKE target_table;
Copier après la connexion

2. Optimiser la table temporaire (facultatif) :

Accélérez le chargement des données en supprimant les index de la table temporaire :

SHOW INDEX FROM temporary_table;
DROP INDEX `PRIMARY` ON temporary_table;
DROP INDEX `some_other_index` ON temporary_table;
Copier après la connexion

3. Chargez CSV dans la table temporaire :

Effectuez une importation de données de base à l'aide de LOAD DATA INFILE :

LOAD DATA INFILE 'your_file.csv'
INTO TABLE temporary_table
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
(field1, field2);
Copier après la connexion

4. Copier les données avec ON DUPLICATE KEY UPDATE :

Mettre à jour la table cible tout en préservant les enregistrements existants :

SHOW COLUMNS FROM target_table;
INSERT INTO target_table
SELECT * FROM temporary_table
ON DUPLICATE KEY UPDATE field1 = VALUES(field1), field2 = VALUES(field2);
Copier après la connexion

5. Supprimer la table temporaire :

Une fois le transfert de données terminé, supprimez la table temporaire :

DROP TEMPORARY TABLE temporary_table;
Copier après la connexion

En suivant ces étapes, vous pouvez émuler la fonctionnalité ON DUPLICATE KEY UPDATE avec LOAD DATA INFILE, optimisant le chargement des données tout en préservant l'intégrité des données.

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