Ich versuche, zwei Tabellen mit der gleichen Struktur (Vereinigung) zusammenzuführen. In einem bekannten Zeilenblock wird der Primärschlüssel (eine ganze Zahl auto_increment) in beiden Tabellen für unterschiedliche Daten verwendet. Nehmen wir an, es sind die Zeilen mit den Primärschlüsseln 2000-2150. Was ist der beste Weg, um diese Datensätze in Tabelle B zu unbenutzten Werten neu zu nummerieren (sagen wir im Bereich über 3000), damit die Zusammenführung ohne Konflikte ablaufen kann? Sollte ich sie nur aktualisieren (sagen wir, indem man jeder ID in diesem Bereich 1000 hinzufügt), oder gibt es bessere Möglichkeiten?Zwei SQL-Tabellen mit Schlüsselkonflikten verschmelzen
Hinweise:
Alle Verweise auf diese Tabelle sind
ON UPDATE CASCADE
erklärt, so dass ich sicher ohne Konsequenzen nummerieren kann.Der Rest der Zusammenführung kann ich behandeln. Beiden Tabellen enthalten nützliche Daten, und wenn eine Taste außerhalb dieses Bereichs wiederholt wird, werde ich die Version in Tabelle A hält
Wenn Sie könnten, geben Sie bitte die Abfrage, die Sie jetzt versuchen, so dass wir etwas haben, von dem wir arbeiten können. Als kurze Antwort können Sie jedoch in der Auswahl von 'Tabelle B':' Id + 3000, col2, col3, col4 von TableB' auswählen. - Das heißt, wenn die Spalte "Id" numerisch ist. – gmiley
Ich habe noch keine Frage - Ich bin unsicher, welchen Ansatz ich wählen soll. Ich dachte daran, ein 'UPDATE' zu machen, um jeder ID im Block 1000 hinzuzufügen, aber ich dachte, ich würde fragen, ob es einen geeigneteren Ansatz gibt. – alexis
Ok, ich werde meinen Kommentar dann auf eine Antwort verschieben und vielleicht ein paar weitere Gedanken hinzufügen. – gmiley