- Beiträge: 23
spaltenweise Datenbankkopie ohne Primary-Key
- Flo
- Autor
- Offline
- Benutzer
Weniger
Mehr
5 Jahre 10 Monate her #3606
von Flo
spaltenweise Datenbankkopie ohne Primary-Key wurde erstellt von Flo
Hallo und ein gesundes NEUES JAHR an Alle,
aufgrund eines ODBC-Treiberproblem (hat nichts mit Flowheater zu tun!) bin ich leider zur Lösung auf der Suche nach nutzbaren "Umwegen".
Da ich hier jedoch gedanklich auf dem Schlauch stehe und ein Datenkaos vermeiden möchte, hat vielleicht jemand einen Ansatz um mit FlowHeater eine Lösung zu bekommen.
Situation: READ_DB = ODBC (buggy!); WRITE_DB=mySQL; Datenbankaufbau und Inhalt der DB_in -> DB_out soll 1 zu 1 sein; aktuelle FlowHeater (beta)
Da der READ_Datenbanktreiber teils beim gleichzeitig Einlesen von mehreren Spalten mittels einer Definition abstürzt, benötigt man teils für jede Spalte eine Definition (soweit so "gut").
Hierdurch ergibt sich bei den Daten der READ_DB das Problem, dass für ein UPDATE der WRITE_DB kein Primary-Key zum Zuordnen der Spaltenwerte aus der READ_DB genutzt werden kann. Nun suche ich nach einer Möglichkeit die READ_DB je Spalte Zeilenweise in einer neuen DB wieder "aufzubauen". Meine Fragen wären nun, ob man bei einem 1zu1 Datentransfer von ODBC nach mySQL jede Spalte Zeilenweise nach und nach wieder in einer neuen Datenbank aufbauen kann.
Ich stelle mir das ähnlich eines spaltenweisen Kopierens der zugehörigen Spalten-Zellen von einer Excel-Datei in eine neue vor.
Im Datenbankumfeld stecke ich aber leider gerade ohne Primary-Key fest.
Vorab schon einmal vielen Dank für eine Rückmeldung und möglichen Tip.
Viele Grüße,
Florian
aufgrund eines ODBC-Treiberproblem (hat nichts mit Flowheater zu tun!) bin ich leider zur Lösung auf der Suche nach nutzbaren "Umwegen".
Da ich hier jedoch gedanklich auf dem Schlauch stehe und ein Datenkaos vermeiden möchte, hat vielleicht jemand einen Ansatz um mit FlowHeater eine Lösung zu bekommen.
Situation: READ_DB = ODBC (buggy!); WRITE_DB=mySQL; Datenbankaufbau und Inhalt der DB_in -> DB_out soll 1 zu 1 sein; aktuelle FlowHeater (beta)
Da der READ_Datenbanktreiber teils beim gleichzeitig Einlesen von mehreren Spalten mittels einer Definition abstürzt, benötigt man teils für jede Spalte eine Definition (soweit so "gut").
Hierdurch ergibt sich bei den Daten der READ_DB das Problem, dass für ein UPDATE der WRITE_DB kein Primary-Key zum Zuordnen der Spaltenwerte aus der READ_DB genutzt werden kann. Nun suche ich nach einer Möglichkeit die READ_DB je Spalte Zeilenweise in einer neuen DB wieder "aufzubauen". Meine Fragen wären nun, ob man bei einem 1zu1 Datentransfer von ODBC nach mySQL jede Spalte Zeilenweise nach und nach wieder in einer neuen Datenbank aufbauen kann.
Ich stelle mir das ähnlich eines spaltenweisen Kopierens der zugehörigen Spalten-Zellen von einer Excel-Datei in eine neue vor.
Im Datenbankumfeld stecke ich aber leider gerade ohne Primary-Key fest.
Vorab schon einmal vielen Dank für eine Rückmeldung und möglichen Tip.
Viele Grüße,
Florian
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- FlowHeater-Team
- Offline
- Administrator
5 Jahre 10 Monate her #3608
von FlowHeater-Team
gruß
Robert Stark
Wurde Ihre Frage damit beantwortet? Bitte geben Sie ein kurzes Feedback, Sie helfen damit auch anderen die evtl. ein ähnliches Problem haben. Danke.
FlowHeater-Team antwortete auf spaltenweise Datenbankkopie ohne Primary-Key
Hallo Florian,
das würde über eine zusätzliche „temporäre“ Spalte in der WRITE MySQL Server Datenbank funktionieren. Alternativ dazu könnte das auch mit der aktuellen Beta mit dem hier vorhandenen InMemory Tabellen relativ einfach, ohne Tabellenänderung, durchgeführt werden. Im Anhang finden Sie ein Beispiel dazu.
Generelle Vorgehensweise
Im ersten Schritt das erste Feld der ODBC Datenbank mit dem korrespondierenden Feld der MySQL Datenbank verbinden. Zusätzlich einen AutoID Heater verwenden und diesen mit dem Temporären Feld verbinden. Auf der WRITE Seite den MySQL Adapter so konfigurieren, dass nur INSERT durchgeführt werden.
Im zweiten (und weiteren) Steps jeweils das nächste Feld sowie den AutoID Heater mit der WRITE Seite Verbinden. Hier jedoch den MySQL Adapter nun so konfigurieren, dass nur UPDATES durchgeführt werden. In den Feldeigenschaften müssen die das „Temporäre“ Feld für den AutoID Heater als „Schlüsselfeld“ (Primary Key) für Updates konfigurieren. Falls ein anderer Primary Key auf der Tabelle vorhanden sein hier diesen einfach deaktivieren. So aktualisiert der MySQL Adapter jeden Datensatz der WRITE Seite mit den 1:1 Werten der READ Seite.
Wichtig ist aber, dass während des Datenabgleiches keine weiteren Datensätze hinzukommen und die ODBC Datenquelle immer in der gleichen
Reihenfolge vorhanden ist. Am besten hier auf der READ Seite noch einen ORDER BY an das „default“ SELECT Statement dranhängen.
z.B. SELECT* from IHRE-Tabelle ORDER BY Feld1
PS: Das Probleme mit der ODBC Datenquelle „schreit“ aber nacheinem inkompatiblen ODBC Treiber Problem. Versuchen Sie mal die gleiche ODBC
Treiber Version die zur ODBC Datenbank passt zu installieren.
1. Step nur Inserts durchführen
2. Step (und weitere) nur Updates durchführen
2. Step (und weitere) Schlüsselfeld (Primary Key) auswählen
BetaVersion Download
FlowHeaterBeta 32 Bit
FlowHeaterBeta 64 Bit
FlowHeaterServer Beta
das würde über eine zusätzliche „temporäre“ Spalte in der WRITE MySQL Server Datenbank funktionieren. Alternativ dazu könnte das auch mit der aktuellen Beta mit dem hier vorhandenen InMemory Tabellen relativ einfach, ohne Tabellenänderung, durchgeführt werden. Im Anhang finden Sie ein Beispiel dazu.
Generelle Vorgehensweise
Im ersten Schritt das erste Feld der ODBC Datenbank mit dem korrespondierenden Feld der MySQL Datenbank verbinden. Zusätzlich einen AutoID Heater verwenden und diesen mit dem Temporären Feld verbinden. Auf der WRITE Seite den MySQL Adapter so konfigurieren, dass nur INSERT durchgeführt werden.
Im zweiten (und weiteren) Steps jeweils das nächste Feld sowie den AutoID Heater mit der WRITE Seite Verbinden. Hier jedoch den MySQL Adapter nun so konfigurieren, dass nur UPDATES durchgeführt werden. In den Feldeigenschaften müssen die das „Temporäre“ Feld für den AutoID Heater als „Schlüsselfeld“ (Primary Key) für Updates konfigurieren. Falls ein anderer Primary Key auf der Tabelle vorhanden sein hier diesen einfach deaktivieren. So aktualisiert der MySQL Adapter jeden Datensatz der WRITE Seite mit den 1:1 Werten der READ Seite.
Wichtig ist aber, dass während des Datenabgleiches keine weiteren Datensätze hinzukommen und die ODBC Datenquelle immer in der gleichen
Reihenfolge vorhanden ist. Am besten hier auf der READ Seite noch einen ORDER BY an das „default“ SELECT Statement dranhängen.
z.B. SELECT* from IHRE-Tabelle ORDER BY Feld1
PS: Das Probleme mit der ODBC Datenquelle „schreit“ aber nacheinem inkompatiblen ODBC Treiber Problem. Versuchen Sie mal die gleiche ODBC
Treiber Version die zur ODBC Datenbank passt zu installieren.
1. Step nur Inserts durchführen
2. Step (und weitere) nur Updates durchführen
2. Step (und weitere) Schlüsselfeld (Primary Key) auswählen
BetaVersion Download
FlowHeaterBeta 32 Bit
FlowHeaterBeta 64 Bit
FlowHeaterServer Beta
gruß
Robert Stark
Wurde Ihre Frage damit beantwortet? Bitte geben Sie ein kurzes Feedback, Sie helfen damit auch anderen die evtl. ein ähnliches Problem haben. Danke.
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
Ladezeit der Seite: 0.283 Sekunden