Ich baue auf einer bestehenden Datenbank mit einer Beziehungskonstruktion auf, die ich nirgendwo zuvor gesehen habe.Zwei Tabellen mit einer Beziehung verschmelzen
Ich habe drei Tabellen:
legend1
legid INT(11), AUTO_INCREMENT, PRIMARY
description VARCHAR(255)
legend2
legid INT(11), AUTO_INCREMENT, PRIMARY
description VARCHAR(255)
items
id INT(11), AUTO_INCREMENT, PRIMARY
name VARCHAR(255)
legid INT(11)
legend VARCHAR(8)
Jeder Datensatz in items
entweder legend1
oder legend2
auf Daten bezieht. Das Feld items.legend
bestimmt, welcher davon es ist. Ich möchte diese Konstruktion loswerden, da legend1
und legend2
eine identische Struktur haben. Das einzige, was anders ist, ist der Inhalt.
Ich möchte diese Konstruktion haben:
legend
legid INT(11), AUTO_INCREMENT, PRIMARY
description VARCHAR(255)
items
id INT(11), AUTO_INCREMENT, PRIMARY
name VARCHAR(255)
legid INT(11)
Das Problem ist, dass die Tische sind voll und keine Daten verloren gehen können. Die ID beider Tabellen beginnt bei 1, so dass fast jeder Primärschlüssel kollidiert.
Ich habe diese Anfrage:
INSERT INTO legend1 (description) SELECT description FROM legend2;
Diese Abfrage funktioniert nicht, weil es von legend2
verwiesen ids vermasselt.
Haben Sie alle doppelten Beschreibungen in legend1 müssen eingestellt und legend2? –
Es gibt keine doppelten Beschreibungen im Moment, aber es könnte in der Zukunft geben. – ONOZ
spezifizieren Sie die Beschreibungspalte zur Tabelle wie 'legend1'' description' AS 'legend1_desc' –