Heim > Datenbank > MySQL-Tutorial > Wie kann ich eine Datenbankzeile basierend auf zwei Bedingungen effizient EINFÜGEN oder AKTUALISIEREN?

Wie kann ich eine Datenbankzeile basierend auf zwei Bedingungen effizient EINFÜGEN oder AKTUALISIEREN?

Mary-Kate Olsen
Freigeben: 2024-12-31 04:56:08
Original
600 Leute haben es durchsucht

How Can I Efficiently INSERT INTO or UPDATE a Database Row Based on Two Conditions?

INSERT INTO oder UPDATE mit zwei Bedingungen: Eine effiziente Lösung

Die Aufgabe des Einfügens oder Aktualisierens Zeilen in einer Datenbank basierend auf zwei Bedingungen können eine Herausforderung darstellen, insbesondere wenn eine effiziente Lösung gesucht wird. Dieses Problem tritt besonders häufig auf, wenn es um Tabellen geht, in denen ständig neue Zeilen mit doppelten Namen und Datumsangaben generiert werden.

Die Lösung: INSERT INTO ON DUPLICATE KEY UPDATE

Die optimale Lösung für dieses Problem ist die INSERT INTO ON DUPLICATE KEY UPDATE-Anweisung. Diese Anweisung ermöglicht das Einfügen einer neuen Zeile, wenn diese noch nicht vorhanden ist, und die Aktualisierung einer vorhandenen Zeile, falls dies der Fall ist. Um diese Anweisung verwenden zu können, muss die Tabelle über einen eindeutigen Schlüssel (z. B. einen zusammengesetzten Schlüssel) verfügen, um Konflikte während des Einfügevorgangs zu erkennen.

Beispielverwendung

Betrachten Sie eine Tabelle mit dem folgenden Schema:

CREATE TABLE myThing (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name INT NOT NULL,
    values1 INT NOT NULL,
    values2 INT NOT NULL,
    dates DATE NOT NULL,
    UNIQUE KEY (name, dates) -- This unique key is crucial.
);
Nach dem Login kopieren

Mit diesem Setup ergibt sich Folgendes Die Anweisung fügt eine neue Zeile ein, wenn die Kombination aus Name und Datum nicht vorhanden ist, oder aktualisiert die vorhandene Zeile, wenn dies der Fall ist:

INSERT INTO myThing (name, values1, values2, dates)
VALUES (777, 1, 1, '2015-07-11')
ON DUPLICATE KEY UPDATE values2=values2+1;
Nach dem Login kopieren

Beispielergebnisse

Durch mehrmaliges Ausführen der Einfügeanweisung mit derselben Kombination aus Name und Datum wird die Spalte „values2“ wie gezeigt aktualisiert unten:

| id | name | values1 | values2 | dates      |
| --- | --- | --- | --- | --- |
| 1 | 777 | 1 | 4 | 2015-07-11 |
Nach dem Login kopieren

Fazit

Die INSERT INTO ON DUPLICATE KEY UPDATE-Anweisung bietet eine hocheffiziente Lösung für die Verwaltung von Einfügungen und Aktualisierungen basierend auf mehreren Bedingungen. Durch die Definition eines eindeutigen Schlüssels stellt dieser Ansatz sicher, dass doppelte Einträge ordnungsgemäß behandelt werden, sodass keine komplexen gespeicherten Prozeduren erforderlich sind.

Das obige ist der detaillierte Inhalt vonWie kann ich eine Datenbankzeile basierend auf zwei Bedingungen effizient EINFÜGEN oder 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