Zum Inhalt springen

2 MySQL Datenbanken zusammenführen


Gromran

Empfohlene Beiträge

Hallo,

ich suche eine Möglichkeit, zwei MySQL-Datenbanken zusammen zuführen.

Beide Datenbanken sind gleich, also Struktur (und Ausgangsdaten), aber in beiden werden unterschiedliche neue Daten eingetragen (in einer z.B neue User, in der anderen neue Aufgaben). Solange diese sich nicht überschneiden, das auch kein Problem. Nur kann dies nicht sichergestellt werden. Es kann also passieren, das in beiden DB's ein neuer Eintrag im selben Table geschieht, was bei einem einfachen Merge die UniqueIDs komplett durcheinander bringt bzw deren Fremdschlüsselabhängigkeiten.

Nun könnte man von Hand versuchen das auszulesen und anzupassen, was aber bei 300+ Tabellen nicht lustig ist, zumal der DB-Entwurf (nicht von mir... ich sag nur Moodle^^) nicht 100% atomar ist. Aufgaben werden z.B. zu einem Quiz zusammengefasst. Im Quiztable werden alle Aufgaben kommagetrennt in einem Feld gespeichert.

Falls irgendjemand eine gute Idee oder eine funktionierende Lösung hat... immer her damit.

MfG, Gromran

Link zu diesem Kommentar
Auf anderen Seiten teilen

Du kannst mit einem INSERT IGNORE die Daten von der einen Tabelle in die andere übertragen (siehe MySQL :: MySQL 5.1 Referenzhandbuch :: 13.2.4 INSERT ). Bei einem INSERT kannst Du über "ON DUPLICATE KEY" festlegen, wie verfahren werden soll, wenn eine Schlüsselverletzung auftritt.

Natürlich musst Du die Integritäten beachten, d.h. erst die führende Tabelle füllen und dann die abhängigen. Rein technisch stellt das Einfügen der Daten kein großes Problem dar. Inhaltlich kann es aber zu Problemen führen, wenn Du nicht feststellen kannst, welche Datensatz nun eingefügt werden muss.

Aus der Erfahrung heraus würde ich das ganze via ON DUPLICATES KEY umsetzen und zuvor eben schon die Menge, die ich einfügen muss vorbereiten. Weiterhin würde ich das ganze transaktionssicher aufbauen und eben bei Datensätzen, die nicht eindeutig zuzuordnen sind, ein entsprechendes Log schreiben, so dass ich diese eben händisch anschauen kann. Ein Standardvorgehen wird es aber nicht geben, d.h. Du musst das schon in Abhängigkeit von Deinen Dir überlegen

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...