Hallo Community,
Ich bekomme täglich Rohdaten mit ca. 10 zusätzlichen Feldern. In den Rohdaten ist die PROJEKT_ID ein eindeutiger Schlüssel.
Diese Daten schreibe ich mit einem Output Data und der Option "Update; Insert if new" in die Datenbank. Bevor ich die Daten schreibe wird aber noch das Feld SYS_MOD_DATE mit einem Date/Timestamp gesetzt.
Daher erkennt das Output Objekt alle Daten immer nur als "NEU" und legt mir die Datensätze doppelt an.
Kann ich irgendwo den Key für ein Update festlegen? Natürlich sollte dann ein bestehender Datensatz auch mit dem neuen SYS_MOD_DATE versehen werden. Geht das in dem Output Data zu konfigurieren?
Gelöst! Gehe zu Lösung.
Hallo,
wenn das Feld "PROJEKT_ID" als primary key festgelegt wurde, sollten die Daten auch nicht doppelt angelegt werden.
Gruß
Matthias
Hallo Matthias,
ja genau davon bin ich ausgegangen, aber wo genau lege ich den Primary Key fest?
Ich bekomme die Daten aus einer XML Datei, die ich mit den zwei Selects bearbeite, erst wähle ich die Spalten aus die ich will, dann benenne ich die im zweiten Select um und mit der Formel baue ich die "Timestamps" dazu.
Und in den Optionen finde ich auch nichts bezüglich Key
Wo lege ich den Key fest?
Gruß
Stephan
Hallo @S_Streck ,
der Primary Key ist etwas, was in der SQL-Datenbank auf der Tabelle festgelegt wird.
Das einfachste wird es sein, diese mit deinem Datenbankmanagement System zu öffnen und dort entsprechend den Primärschlüssel festzulegen.
Solltest du keinen Zugriff auf eine solche Software haben, kannst du das auch mit einer einfachen SQL Query in Alteryx erreichen:
Hierzu ist das von dir gezeigte Feld Pre Create SQL Statement hilfreich. Das hier eingegebene SQL Statement wird allerdings bei JEDER Ausführung des Tools ebenfalls ausgeführt. Das heißt ich würde dieses nur einmal in einem Input oder Output Tool hinzufügen (danach wird es einen Fehler werfen, da es nur einen Primary Key Constraint geben kann) und es nach einmaliger Ausführung wieder entfernen!
Mit der Query
ALTER TABLE "test"."some_lines" ADD PRIMARY KEY ("number");
fügst du einen solchen Key auf deine Tabelle hinzu.
Wenn du es dynamischer brauchst, kann ich dir das gerne noch etwas näher erläutern. Aber ich denke, dein Problem sollte damit schon beseitigt sein.
Viele Grüße
Johannes
(Blue Reply)
Danke,
ich hab es geschafft, auf die SQL Datenbankebene hatte ich leider nicht so direkten Zugriff, aber der Tip mit den Pre-SQL Statements hat geholfen.
Gruß
Stephan