Je suis à la recherche de bonnes pratiques et d'idées pour gérer les données dans une table de base de données lors d'un transfert de données en masse. Je pense que ce serait plus facile de commencer par un exemple:Suppression d'anciens enregistrements lors du transfert groupé SQL
Supposons que la table de base de données en question contient les documents suivants:
id | name | ...
1 | company A |
2 | company B |
3 | company C |
Je puis opter pour la mise à jour en vrac ce tableau avec un nouveau fichier de données qui contient des informations uniquement pour les entreprises A et C, étant entendu que la société B n'est plus un point de données souhaité. Ma question est la suivante: j'utilise une technique upsert
pour gérer les points de données répertoriés dans le fichier de données, mais comment puis-je supprimer efficacement le point de données non représenté de la base de données (par exemple, la société B)? Dois-je surveiller les horodatages et effacer les résultats plus anciens que l'heure de début du téléchargement? Ou devrais-je simplement vider la table entière et la repeupler (au détriment de la gestion des indices)? Ce dernier a l'inconvénient de rendre la table inutile pendant le téléchargement, mais le premier a des problèmes de concurrence et de verrouillage. Pensées?
Une fois que les données sont téléchargées dans une zone de travail, vous avez beaucoup d'options à votre disposition, y compris beaucoup de travail avant de modifier la table "principale". –
Je n'ai même jamais envisagé de mettre en scène les nouvelles données dans une table temporaire. Cela fonctionnera bien. Merci! – trydionel
Je ne fais jamais une importation de données sans la mettre en scène d'abord. Rien ne va dans mes tables prod jusqu'à ce que j'ai un changement pour le nettoyer. – HLGEM