Ich muss eine Firma Tabelle umgestalten, so dass die Adressinformationen in eine dedizierte Adressentabelle verschoben wird.einfügen von einer anderen Tabelle und verknüpfen Tabellen dann von ID
Also ich denke, ich muss so etwas tun, um die neuen Adressdatensätze zu erstellen.
INSERT INTO address (city, country, ...)
SELECT city,country, ... FROM company
Aber wie aktualisiere ich die Firma Tabelle mit der ID der neu erstellten Adressdatensätze, um referenzielle Integrität zu erhalten?
Es gibt mehrere doppelte Adressen so kann ich nicht auf die Stadt kommen nur, Land Felder etc.
UPDATE
Wie von Juergen d angedeutet, die Art, wie ich diese Runde bekam ist eine temporäre zu erstellen company_id Spalt in der Adresstabelle:
ALTER TABLE address ADD company_id INTEGER
INSERT INTO address (city,country,company_id)
SELECT city,country,id from company
UPDATE company c set c.address_id = (select a.id from address a where a.company_id = c.id)
ALTER TABLE address DROP COLUMN company_id;
Danach verwenden Sie SELECT LAST_INSERT_ID() ', um die ID des neuen Datensatzes –
wird LAST_INSERT_ID() nicht nur geben Sie mir die ID des letzten Datensatzes von der Anweisung eingefügt, unabhängig davon, wie viele eingefügt wurden? – beterthanlife
Ja, ich habe deine Frage missverstanden. –