Free Trial

Forum - Deutsch

Suchen Sie nach Antworten, stellen Sie Fragen und teilen Sie Ihr Alteryx-Wissen.
GELÖST

Output Data: Wo lege ich die KEY Spalten fest für die Option "Update; Insert if new"

S_Streck
Meteor

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? 

4 ANTWORTEN 4
akku
Bolide

Hallo,

 

wenn das Feld "PROJEKT_ID" als primary key festgelegt wurde, sollten die Daten auch nicht doppelt angelegt werden.

 

Gruß

Matthias

S_Streck
Meteor

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. 

S_Streck_0-1617031584180.png

 

Und in den Optionen finde ich auch nichts bezüglich Key

S_Streck_1-1617031724367.png

 

Wo lege ich den Key fest? 

Gruß

Stephan 

reply_mueller
Asteroid

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!

 

reply_mueller_0-1617300170186.png

 

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)

S_Streck
Meteor

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 

Beschriftungen