Heim > Datenbank > MySQL-Tutorial > Wie kann ich vorhandene Datensätze beim Einfügen mit widersprüchlichen eindeutigen Schlüsseln präzise aktualisieren?

Wie kann ich vorhandene Datensätze beim Einfügen mit widersprüchlichen eindeutigen Schlüsseln präzise aktualisieren?

Barbara Streisand
Freigeben: 2024-12-18 09:43:09
Original
302 Leute haben es durchsucht

How Can I Concisely Update Existing Records When Inserting with Conflicting Unique Keys?

Einfügen mit Aktualisierung doppelter Schlüssel: Ein prägnanter Ansatz

Bei der Arbeit mit Datenbanken ist es oft wünschenswert, vorhandene Datensätze zu aktualisieren, wenn versucht wird, neue mit widersprüchlichen eindeutigen Schlüsseln einzufügen . Hier kommt die Klausel „ON DUPLICATE KEY UPDATE“ zum Einsatz.

Die Situation

Angenommen, Sie haben eine Tabelle mit einem eindeutigen Index für das Feld „id“. und Sie möchten einen neuen Datensatz einfügen und gleichzeitig sicherstellen, dass der entsprechende Datensatz aktualisiert wird, wenn die ID bereits vorhanden ist.

Konventionell Ansatz

Der herkömmliche Ansatz beinhaltet die Angabe aller Feldwerte in der UPDATE-Klausel, wie unten gezeigt:

INSERT INTO table (id, a, b, c, d, e, f, g) VALUES (1, 2, 3, 4, 5, 6, 7, 8)
ON DUPLICATE KEY UPDATE a=2, b=3, c=4, d=5, e=6, f=7, g=8;
Nach dem Login kopieren

Dieser Ansatz funktioniert gut, kann aber bei großen Daten sehr ausführlich werden Anzahl der Spalten.

Kurze Alternative

Um die UPDATE-Klausel zu vereinfachen, können Sie verwenden das Schlüsselwort „VALUES“, um die neuen Werte für die aktualisierten Felder anzugeben. Dadurch entfällt die Notwendigkeit, die Spaltennamen zu wiederholen:

INSERT INTO table (id, a, b, c, d, e, f, g) VALUES (1, 2, 3, 4, 5, 6, 7, 8)
ON DUPLICATE KEY UPDATE a=VALUES(a), b=VALUES(b), c=VALUES(c), d=VALUES(d), e=VALUES(e), f=VALUES(f), g=VALUES(g);
Nach dem Login kopieren

Dieser Ansatz ist prägnanter und erzielt immer noch das gleiche Ergebnis.

Zuletzt eingefügte ID abrufen

Wenn Sie die ID des neu eingefügten oder aktualisierten Datensatzes abrufen müssen, können Sie die Backend-spezifische Methode verwenden, die von Ihrer Datenbank oder Ihrem Framework bereitgestellt wird. In LuaSQL können Sie beispielsweise die Funktion „conn:getlastautoid()“ verwenden, um die letzte automatisch generierte ID abzurufen.

Das obige ist der detaillierte Inhalt vonWie kann ich vorhandene Datensätze beim Einfügen mit widersprüchlichen eindeutigen Schlüsseln präzise aktualisieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage