fjolle
Neuer Benutzer
- Beiträge
- 2
Hallo zusammen,
ich sitze nun schon seit 2 Tagen an folgendem Problem:
Ich habe 2 Datenbanken mit jeweils 4 Tabellen (Paper, Affiliation, Email, Degree). Sie haben die gleichen Strukturen, jedoch unterschiedliche Daten, leider wurde beim Erstellen nicht darauf geachtet unterschiedliche Keys zu verwenden, wodurch ich beim mergen das Problem habe, dass die Eintraege zwar alle in der neuen Tabelle landen, allerdings vermischt werden, da die Keys ja nicht mehr eindeutig sind. Die Haupttabelle (Bio) konnte ich merkwuerdigerweise ohne Probleme mergen und ohne Probleme bei der Vergabe von eindeutigen IDs.
Die Tabelle Paper hat z.B. folgende Spalten:
Seq, P_ID ,Title, year, CoAuthor, PMID, Flag, Error_Seq
Die P_ID sollte eindeutig sein, da sie ueber alle Tabellen in der DB hinweg der Schluessel ist, der die Beziehungen herstellt. D.h. diese ID sollte auch wieder richtig auf das Bio-Table verweisen.
Ich habe folgendes Query aus einem aehnlichen Problemfall genommen und fuer meine Zwecke umgeschrieben, allerdings ist dort immernoch das Problem, dass mir alles vermischt wird.
CREATE TABLE pmdb_paper LIKE pubmed_db.paper_pubmed
ALTER TABLE pmdb_paper DISABLE KEYS
INSERT INTO pmdb_paper SELECT * FROM pubmed_db.paper_pubmed
INSERT INTO pmdb_paper SELECT * FROM pubmed_db2.paper_pubmed2;
ALTER TABLE pmdb_paper ENABLE KEYS
Ich habe versucht ueber den Befehl ON DUPLICATE KEY UPDATE etwas zu bewirken, aber ich fuerchte ich hab ihn nicht richtig verwendet, da ich immer eine Fehlermeldung bekommen habe.
Mein Problem also:
Autor A mit der P_ID 100 in der 1. DB sollte am Ende nicht mit Autor B mit der P_ID 100 aus der 2. DB gemixt werden, sondern einer von beiden sollte eine neue ID bekommen..
Ich habe schon so ziemlich alles ausprobiert was ich an Vorschlaegen oder Tutorials im Netz finden konnte und frage nun daher euch um Hilfe, da ich auch erst seit ein paar Tagen ueberhaupt mit SQL und Datenbanken arbeite und sicher bin, dass mir hier einfach nur iwo der Durchblick zu etwas fehlt.
Geht das was ich machen moechte denn ueberhaupt?
Danke schonmal im Voraus fuer eure Vorschlaege und Muehe!
ich sitze nun schon seit 2 Tagen an folgendem Problem:
Ich habe 2 Datenbanken mit jeweils 4 Tabellen (Paper, Affiliation, Email, Degree). Sie haben die gleichen Strukturen, jedoch unterschiedliche Daten, leider wurde beim Erstellen nicht darauf geachtet unterschiedliche Keys zu verwenden, wodurch ich beim mergen das Problem habe, dass die Eintraege zwar alle in der neuen Tabelle landen, allerdings vermischt werden, da die Keys ja nicht mehr eindeutig sind. Die Haupttabelle (Bio) konnte ich merkwuerdigerweise ohne Probleme mergen und ohne Probleme bei der Vergabe von eindeutigen IDs.
Die Tabelle Paper hat z.B. folgende Spalten:
Seq, P_ID ,Title, year, CoAuthor, PMID, Flag, Error_Seq
Die P_ID sollte eindeutig sein, da sie ueber alle Tabellen in der DB hinweg der Schluessel ist, der die Beziehungen herstellt. D.h. diese ID sollte auch wieder richtig auf das Bio-Table verweisen.
Ich habe folgendes Query aus einem aehnlichen Problemfall genommen und fuer meine Zwecke umgeschrieben, allerdings ist dort immernoch das Problem, dass mir alles vermischt wird.
CREATE TABLE pmdb_paper LIKE pubmed_db.paper_pubmed
ALTER TABLE pmdb_paper DISABLE KEYS
INSERT INTO pmdb_paper SELECT * FROM pubmed_db.paper_pubmed
INSERT INTO pmdb_paper SELECT * FROM pubmed_db2.paper_pubmed2;
ALTER TABLE pmdb_paper ENABLE KEYS
Ich habe versucht ueber den Befehl ON DUPLICATE KEY UPDATE etwas zu bewirken, aber ich fuerchte ich hab ihn nicht richtig verwendet, da ich immer eine Fehlermeldung bekommen habe.
Mein Problem also:
Autor A mit der P_ID 100 in der 1. DB sollte am Ende nicht mit Autor B mit der P_ID 100 aus der 2. DB gemixt werden, sondern einer von beiden sollte eine neue ID bekommen..
Ich habe schon so ziemlich alles ausprobiert was ich an Vorschlaegen oder Tutorials im Netz finden konnte und frage nun daher euch um Hilfe, da ich auch erst seit ein paar Tagen ueberhaupt mit SQL und Datenbanken arbeite und sicher bin, dass mir hier einfach nur iwo der Durchblick zu etwas fehlt.
Geht das was ich machen moechte denn ueberhaupt?
Danke schonmal im Voraus fuer eure Vorschlaege und Muehe!