Kann MySQL ON DUPLICATE KEY die zuletzt eingefügte oder aktualisierte ID zurückgeben?
In MySQL ist die INSERT ... ON DUPLICATE KEY UPDATE-Anweisung ermöglicht Einfüge- oder Aktualisierungsvorgänge innerhalb einer einzelnen Abfrage. Allerdings kann es schwierig sein, die ID der betroffenen Zeile zu ermitteln.
Normalerweise gibt die Funktion LAST_INSERT_ID() die ID des neu eingefügten Datensatzes zurück. Nach einem Update-Vorgang bleibt es bedeutungslos. Um dieses Problem zu lösen, können Sie einen Ausdruck mit LAST_INSERT_ID() nutzen, wie in der MySQL-Dokumentation beschrieben.
Erstellen Sie insbesondere einen Ausdruck, der das ID-Feld (in diesem Beispiel eine AUTO_INCREMENT-Spalte) aktualisiert und LAST_INSERT_ID(expr ) als Ausdruck, um ihm eine Bedeutung zu geben Aktualisierungen.
Beispiel:
Betrachten Sie eine Tabelle mit einer ID-Spalte als AUTO_INCREMENT. So aktualisieren oder fügen Sie Zeilen ein und rufen die betroffene ID ab:
INSERT INTO table (a, b, c) VALUES (1, 2, 3) ON DUPLICATE KEY UPDATE id = LAST_INSERT_ID(id), c = 3;
Dieser Ansatz stellt sicher, dass LAST_INSERT_ID() unabhängig von Einfüge- oder Aktualisierungsvorgängen die ID der betroffenen Zeile bereitstellt, sodass keine zweite Abfrage erforderlich ist die ID.
Das obige ist der detaillierte Inhalt vonWie kann MySQLs ON DUPLICATE KEY UPDATE die betroffene Zeilen-ID zurückgeben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!