Matczek Geschrieben 29. November 2006 Geschrieben 29. November 2006 Hallo Leute, gibt es ein Tool welches zwei MySQL Datenbanken in eine DB zusammenführt? Die Tabellen sind bei beiden identisch, es müssen "nur" die Daten abgeglichen werden... Oder muss ich da jetzt ein Programm schreiben welches die Daten manuell in die neue DB schreibt? Da die DB Struktur ziemlich kompliziert aussieht, würde ich dies gerne vermeiden... lg Matthias
geloescht_JesterDay Geschrieben 29. November 2006 Geschrieben 29. November 2006 Mit dem MySQL Admin einen Export der Tabellen, und dann einfach die Zeile "use DBName" anpassen.
Scratch Geschrieben 29. November 2006 Geschrieben 29. November 2006 Hi, das sollte über ein einfachs INSERT SELECT funktionieren. Probiers mal damit --> http://dev.mysql.com/doc/refman/5.0/en/insert-select.html Kurzes Beispiel: INSERT INTO `table1` (`field1`,`field2`,`field3`) SELECT `field1`,`field1`,`field1` FROM `table2` Falls sich die Tabellen überschneiden was die Keys angeht benutze zusätlich "ON DUPLICATE KEY UPDATE" Gruß Scratch
Matczek Geschrieben 29. November 2006 Autor Geschrieben 29. November 2006 @JesterDay: Der exportiert doch auch die Primary Keys Daten oder? Und die Überschneiden sich mit den vohandenen Daten in der anderen DB... @Scratch Dort sind es die foreign Keys die dann auf andere Daten zeigen würden... Matthias
Scratch Geschrieben 29. November 2006 Geschrieben 29. November 2006 Dann wirst du keine andere Wahl haben als die Stammtabellen vorher abzugleichen ... Damit du später auch den richtigen Bezug zum FK wieder findest.
Matczek Geschrieben 29. November 2006 Autor Geschrieben 29. November 2006 autsch, genau dies wollte ich vermeiden...
geloescht_JesterDay Geschrieben 29. November 2006 Geschrieben 29. November 2006 Ich hatte Die Tabellen sind bei beiden identisch, es müssen "nur" die Daten abgeglichen werden... übersehen...Du könntest es auch mit einem INSERT ... SELECT machen und alle Felder bis auf den Primary im SELECT angeben und den Primary key als AutoInc Feld definieren und im SELECT dafür fest NULL auswählen Also INSERT INTO NeueDB.NeueTabelle (ID, Feld1, Feld2) SELECT NULL, Feld1, Feld2 FROM DB1.AlteTabelle1 und INSERT INTO NeueDB.NeueTabelle (ID, Feld1, Feld2) SELECT NULL, Feld1, Feld2 FROM DB2.AlteTabelle2
Matczek Geschrieben 30. November 2006 Autor Geschrieben 30. November 2006 Aber wenn eine andere Tabelle auf diese ID referenziert, habe ich den Bezug nicht mehr (neue DB). Also werde ich das wohl doch manuell machen müssen, oder?
geloescht_JesterDay Geschrieben 30. November 2006 Geschrieben 30. November 2006 Aber wenn eine andere Tabelle auf diese ID referenziert... Dann hast du eh ein Problem, weil bei einer Tabelle sich auf jeden Fall die IDs ändern werden (Und somit auch die, die darauf verweisen sich ändern müssen).
Empfohlene Beiträge
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 erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden