PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : 2 MySQL Datenbanken zusammenführen



norreyy
05.07.10, 15:52
Hallo Leute,

ich habe folgendes Szenario, ich habe 2 Shop-Systeme aufgebaut und nun würde ich gern die 2 zusammenführen. Vom Shop her möglich, wie mach ich das jedoch mit den Datenbanken?

Datenbank A und Datenbank B sind genauso aufgebaut, beide liegen exportiert als *.sql.zip auf meinem Desktop. Wie kann ich diese 2 so zusammenführen das nur die Zeilen kopiert werden die zu fehlen scheinen? Über die Importier Funktion im Phpmyadmin funktionierts leider nicht, da er es immer abbricht weil schon einige zeilen vorhanden sind.

Wäre super wenn ihr mir helfen könnt.

MfG
NY

marce
05.07.10, 15:54
so exportieren, daß entweder ein Insert oder ein Update gemacht wird.

"Alternativ" (Augen zu und durch-Taktik) die Importfehler einfach ignorieren lassen und hoffen...

TheDarkRose
05.07.10, 16:00
Gabs nicht von mysql so ein merge tool?

norreyy
05.07.10, 17:22
so exportieren, daß entweder ein Insert oder ein Update gemacht wird.

"Alternativ" (Augen zu und durch-Taktik) die Importfehler einfach ignorieren lassen und hoffen...

Ok das mit als Update oder Insert exportieren hab ich bis jetzt nicht bemerkt gehabt, nun jedoch mal als Update exportiert.
Bei einem Import in die neue DB bekomm ich leider diese meldung:


MySQL meldet:

#1062 - Duplicate entry '1' for key 1

Ist die selbe meldung als wenn ich auf Insert schalten würde.

Wie kann ich die Import fehler ignorieren?

MfG
NY

stefaan
05.07.10, 19:11
Servus!



Datenbank A und Datenbank B sind genauso aufgebaut, beide liegen exportiert als *.sql.zip auf meinem Desktop.
Heißt, dass die Produkt-IDs in beiden Datenbanken gleich sind? Oder nur dasselbe Schema haben und in beiden DBs unterschiedliche Produkte liegen?

Grüße, Stefan

jac
05.07.10, 19:19
Das wird, je nach Shop-System, nicht so einfach.

Es ist sicher in den meisten Tabellen ein Primärschlüssel definiert - in der Regel ist dieser eindeutig und jeden Wert gibt es nur einmal -> Beispiel die Produkt ID, die Kundennummer, die Bestellnummer, etc.
Wenn Du nun 2 Shops startest, werden wohl beide mit den gleichen Werten anfangen. Das bedeutet es wird in beiden Shops einen User mit der ID "1" geben, usw.
Du musst nun um die Eindeutigkeit herzustellen, und die Werte von dem einen Shop in den anderen zu kopieren, diese ID erst eindeutig machen, also umbenennen. Dann kannst Du die Daten ohne den 'Duplicate entry' importieren.
Aber Achtung: reines umbenennen des Primärschlüssels reicht nicht aus, denn der Shop hat ja auch in den anderen Tabellen Referenzen - Du musst diese auch vor einem Import mit umbenennen!

Um auf den Anfang zurück zu kommen: je nach Shop kann das echt viel Aufwand bedeuten und birgt ein hohes Fehlerpotential ...

norreyy
05.07.10, 20:15
Das ist alles kein problem, darauf habe ich schon geachtet, es geht mir eigentlich rein um die Produkte des Shops.

Das einzige Problem das ich habe ist die Datenbanken zusammen zu bekommen, da scheitere ich immer noch.

MfG
NY

TheDarkRose
05.07.10, 20:18
Wenn es dir rein um die Produkte geht, warum nutzt du dann nicht die CSV Export funktion deines shops (falls er diese anbietet)

norreyy
05.07.10, 22:57
Weil er dieses eben nicht anbietet, daher meine frage: Gibt es eine möglichkeit diese zusammen zu bringen oder nicht?

NY

marce
05.07.10, 23:07
exportiere halt nur die Spalten der Tabelle, die unkritisch sind.

Oder mal Butter bei die Fische - welches Shopsystem verwendest Du?

norreyy
06.07.10, 20:09
Das Shop-System ist ein eigen gebasteltes von einem Freund.
Genau darum dieses Forum mit der MySQL anfrage und nicht das des Online-Shop-Systems.

Hab die Sachen nun händisch umgetragen, da es leider auf keine weise funktioniert hat.

Aber Danke euch!

NY

niXLike
07.07.10, 10:58
nichts für ungut mein freund,
für solche aktivitäten bitte ein wenig mehr zeit einplanen und nicht gleich eine verzweiflungstat á la händisch eintragen durchführen. wir wissen nicht wie deine alte und neue datenbank aussieht. also von daher immer ein wenig gedulden.