2 Stimmen

Wie fügt man zwei verbundene Datensätze in zwei Tabellen ein?

Ich möchte zwei zugehörige Datensätze in zwei Tabellen einfügen. Ein Datensatz ist mit einem anderen Datensatz durch einen Fremdschlüssel verbunden.

Zum Beispiel habe ich zwei Datensätze:

produkt (produktid, produkt_name, category_id)
kategorie (category_id, category_name)

Aber die category_id ist auto_increment. Ich kenne also ihren Wert nicht, bis ich sie in die Kategorietabelle einfüge. Deshalb muss ich drei SQL-Abfragen aufrufen, eine zum Einfügen des Datensatzes in die Kategorietabelle, die zweite zum Abrufen der category_id und die letzte SQL-Abfrage zum Einfügen des Datensatzes in die Produkttabelle.

Insgesamt scheint die Leistung aufgrund der Ausführung von drei SQL-Abfragen nicht gut zu sein. Ich möchte nur wissen, ob es bewährte Verfahren für dieses Szenario gibt? Danke

Jeff Zhang

0voto

Milan Babuškov Punkte 57324

Sie müssen SQL nicht aufrufen, um den eingefügten Autoincrement-Wert zu sehen, Sie können die last_insert_id Funktion verwenden.

0voto

Ranhiru Jude Cooray Punkte 18856

Hier überprüfen, wie Sie die zuletzt eingefügte eindeutige ID erhalten können

Wenn ein neuer AUTO_INCREMENT-Wert generiert wurde, können Sie ihn auch abrufen, indem Sie ein SELECT LAST_INSERT_ID() Statement mit mysql_query() ausführen und den Wert aus dem von dem Statement zurückgegebenen Resultset abrufen.

Beachten Sie außerdem, dass

Für LAST_INSERT_ID() wird die zuletzt generierte ID auf Serverseite auf Verbindungsbasis gespeichert

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X