2008-10-19 5 views
1

Je suis nouveau dans le développement de base de données, donc j'espère que c'est trivial. Je possède une grande collection de données brutes (environ 300 millions de lignes) avec environ 10% de données répliquées. J'ai besoin d'obtenir les données dans une base de données. Par souci de performance, j'essaie d'utiliser la copie SQL. Le problème étant que lorsque je valide les données, les exceptions de clé primaire empêchent le traitement de toutes les données. Puis-je modifier le comportement des clés primaires de sorte que les données conflictuelles soient simplement ignorées ou remplacées? Je ne m'en soucie pas vraiment - j'ai juste besoin d'une copie unique de chacune des données.Ignorer les conflits de clé primaire avec la copie SQL

Merci beaucoup.

+0

Qu'est-ce que moteur de base de données? – tvanfosson

+0

Je pense que vous voulez dire "dupliqué" au lieu de "répliqué". – MusiGenesis

Répondre

2

Je pense que votre meilleur pari serait de supprimer la contrainte, de charger les données, puis de les nettoyer et de réappliquer la contrainte.

0

C'est ce que je pensais faire, mais j'étais préoccupé par la performance de se débarrasser de 30 millions de lignes placées aléatoirement dans une base de données d'entrée de 300 millions. Les données en double ont également une relation spatiale, c'est pourquoi je voulais essayer de résoudre le problème lors du chargement des données plutôt qu'après avoir tout chargé.

0

Utilisez une instruction select pour sélectionner exactement les données que vous souhaitez insérer, sans les doublons.

utiliser comme base d'une instruction CREATE TABLE XYZ AS SELECT * FROM (requête-just-non-dupes)

Vous pourriez vérifier ASKTOM idées sur la façon de sélectionner les lignes non-double

Questions connexes