Zum Inhalt springen

Redundanz beim neuen Datenimport vermeiden


Empfohlene Beiträge

Geschrieben

Hallo Leute,

Ich möchte Daten in meiner SQL Tabelle automatisch importieren, aber die Informationen, die schon da sind sollen nicht überschrieben werden oder doppelt vorkommen.

Update kann ich leider nicht benutzen, weil ich mehre Tabelle habe und nicht weiss welche Informationen in der Datei neue sind.

Kann jemand helfen?

Danke

Labelle

Geschrieben
  labelle schrieb:
Hallo Leute,

Ich möchte Daten in meiner SQL Tabelle automatisch importieren, aber die Informationen, die schon da sind sollen nicht überschrieben werden oder doppelt vorkommen.

Update kann ich leider nicht benutzen, weil ich mehre Tabelle habe und nicht weiss welche Informationen in der Datei neue sind.

Kann jemand helfen?

Danke

Labelle

Was für ein DB

Geschrieben
  Amstelchen schrieb:
setzte auf die tabelle(n) einen zusammengesetzten primärschlüssel ... daten die innerhalb des schlüssels doppelt vorkommen, werden verworfen.

s'Amstel

das macht leider das laden nicht unbedingt schneller

@labelle

um wieviel Datensätze handelt es sich denn ??

Geschrieben
  bigpoint schrieb:
das macht leider das laden nicht unbedingt schneller

schon richtig. bei kleinen datenmenge wäre das egal, eine grössere anzahl an rows (in der dimension > 100.000) wäre natürlich anlass, das einem benchmark zu unterziehen. andere faktoren wäre z.b. noch, ob die datentabellen partitioniert sind (ähnlich oracle, aber nicht so komfortabel). das ist auch nur eine mögliche lösung von vielen gangbaren.

beispielsweise liesse sich auch bei inserts mittels NEWID() ein wert vom typ uniqueidentifier mitnehmen:

DECLARE @MEINEEINDEUTIGEZEILE uniqueidentifier

SET @MEINEEINDEUTIGEZEILE = NEWID()

INSERT MeineSpalte1, MeineSpalte2, MeineSpalteN VALUES (@MEINEEINDEUTIGEZEILE ,'bli', 'bla', 'blu')

s'Amstel

Geschrieben
  Ramses_PyramidenVerleih schrieb:
Dieser Code wird aber zu Fehlern führen, da du nur 3 Spalten mit 4 Werten füllen willst.

Ausserdem - korrigiere mich, wenn ich daneben liege - wird somit jedesmal eine neue ID für den Datensatz angelegt. Dadurch eleminiert man aber nicht doppelte Datensätze!

mein angegebenes sql war pseudocode und sollte halt eine weitere möglichkeit von automatischer wertegenerierung nennen - d.h. datensätze zu generieren, die automatisch mit einem uniquen feld ausgestattet werden.

ich hab deshalb auch MeineSpalteN angegeben, was heissen soll, es können beliebige viele INSERT-spalten definiert werden, die natürlich auch die korrespondierende anzahl an VALUES haben müssen. :)

die tatsache, dass NEWID() immer andere werte generiert, setzt natürlich voraus, dass damit nur die datenbasis gefüllt wird, und subsequente INSERTS schon eine ID (von datentyp uniqueidentifier) haben müssen.

s'Amstel

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Weiterlesen  

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...