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 ?
É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;
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;
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);
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);
5. Supprimer la table temporaire :
Une fois le transfert de données terminé, supprimez la table temporaire :
DROP TEMPORARY TABLE temporary_table;
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!