Hier ist das Szenario: Ich habe 2 Tabellen und 2 temporäre Tabellen. Bevor ich Benutzerdaten in die offiziellen Tabellen einfüge, füge ich sie in eine temporäre Tabelle ein, damit sie die Überprüfungen durchführen können. Es gibt eine company
Tabelle mit Unternehmensinformationen und eine contact
Tabelle mit Kontaktinformationen. Die Tabelle contact
hat ein Feld mit der Bezeichnung company_id
, das ein Fremdschlüsselindex für die Tabelle company
ist.MySQL - Einfügen mit Fremdschlüssel Index
Temp-Tabellen werden auf die gleiche Weise eingerichtet.
Ich mag wie etwas tun: INSERT INTO company() SELECT * FROM temp_company;
und INSERT INTO contact() SELECT * FROM temp_contact
Meine Frage ist, wie kann ich den Fremdschlüssel aus den temp_company
auf die neu eingefügte ID auf der company
Tabelle mit einer Anweisung wie folgt übertragen? Gibt es einen Weg, es zu tun?
Derzeit ich bin:
- die temporären Reihen greifen
- gehen eins nach dem anderen und sie
- packte den letzten Einsatz id Einfügen
- dann Einsetzen der Kontakte anschließend mit dem neuen letzten Einsatz id
Ich weiß nur nicht, ob das der effizienteste Weg ist. Vielen Dank!
Das einzige Problem ist, dass ich keine leere Tabelle mit den Temp-Tabellendaten bevölkert. Ich füge Zeilen zu einer Tabelle hinzu, die bereits eine Menge Daten enthält. –
Richtig, das sollte in Ordnung sein, ist das Problem, dass Sie nicht wissen, ob Sie doppelte Schlüssel vor dem Einfügen haben? Wenn dies der Fall ist, können Sie die 'INSERT ... ON DUPLICATE KEY UPDATE'- oder 'INSERT ... ON DUPLICATE KEY INGNORE'-Syntax verwenden, je nachdem, was Sie tun möchten. –