MySQL-Prozedur zum Laden von Daten aus der Staging-Tabelle in andere Tabellen. Notwendigkeit, das mehrwertige Feld im Prozess aufzuteilen
Ich versuche, Daten aus einer mehrwertigen Datenbank (Unidata) nach MySQL zu exportieren. Nehmen wir an, meine Quelldaten waren die ID-Nummer einer Person, ihr Vorname und alle Bundesstaaten, in denen sie gelebt haben. Das Bundesstaatenfeld ist ein Feld mit mehreren Werten, und ich exportiere sie, sodass die verschiedenen Werte in diesem Feld durch ein getrennt werden ~. Ein Beispielauszug sieht wie folgt aus:
"1234","Sally","NY~NJ~CT"
"1235","Dave","ME~MA~FL"
"3245","Fred","UT~CA"
"2344","Sue","OR"
Ich habe diese Daten in eine Staging-Tabelle geladen
Table:staging
Column 1: personId
Column 2: name
Column 3: states
Ich möchte diese Daten mithilfe einer Prozedur in zwei Tabellen aufteilen: eine Personentabelle und eine Statustabelle. Eine Person kann viele Einträge in der Statustabelle haben:
Table 1: persons
Column 1: id
Column 2: name
Table 2: states
Column 1: personId
Column 2: state
Meine Prozedur entnimmt die Daten aus der Staging-Tabelle und speichert sie in Tabelle 1. Allerdings bin ich ein wenig verloren, wie man die Daten aufteilt und an Tabelle 2 sendet. Sally müsste drei Einträge in der Statustabelle haben (NY, NJ, CT), Dave hätte 3, Fred hätte 2 und Sue hätte 1 (ODER). Irgendwelche Ideen, wie dies erreicht werden kann?