Heim > Datenbank > MySQL-Tutorial > Hauptteil

Wie kann ich mehrere MySQL-Tabellen effizient mit identischen Werten aktualisieren?

DDD
Freigeben: 2024-11-04 05:29:29
Original
749 Leute haben es durchsucht

How can I efficiently update multiple MySQL tables with identical values?

Gleichzeitige Aktualisierungen über mehrere MySQL-Tabellen hinweg

Beim Arbeiten mit mehreren Tabellen, die identische Wertaktualisierungen für Denormalisierungszwecke erfordern, kann die Durchführung ineffizient sein separate Aktualisierungen für jede Tabelle. Glücklicherweise bietet MySQL eine Methode, um diese Aktualisierungen mithilfe einer Aktualisierung mehrerer Tabellen in einem einzigen Vorgang zu kombinieren.

Stellen Sie sich das folgende Szenario vor:

<code class="sql">-- Table One Update
UPDATE Table_One
SET win = win+1, streak = streak+1, score = score+200
WHERE userid = 1 AND lid = 1 LIMIT 1

-- Table Two Update
UPDATE Table_Two
SET win = win+1, streak = streak+1, score = score+200
WHERE userid = 1 LIMIT 1</code>
Nach dem Login kopieren

In diesem Beispiel erfordern beide Tabellen dasselbe Wertaktualisierungen, mit Ausnahme des Fehlens des Felds „lid“ in Tabelle 2. Um diese Updates zu kombinieren, können wir ein Multi-Table-Update wie folgt verwenden:

<code class="sql">UPDATE Table_One a INNER JOIN Table_Two b ON (a.userid = b.userid)
SET
  a.win = a.win+1, a.streak = a.streak+1, a.score = a.score+200,
  b.win = b.win+1, b.streak = b.streak+1, b.score = b.score+200
WHERE a.userid = 1 AND a.lid = 1 AND b.userid = 1</code>
Nach dem Login kopieren

In dieser Abfrage verwenden wir die „INNER JOIN“-Anweisung, um die beiden Tabellen in der „userid“-Spalte zu verbinden und so sicherzustellen dass nur übereinstimmende Zeilen aktualisiert werden. Die „SET“-Klausel definiert die Aktualisierungswerte für beide Tabellen.

Es ist wichtig zu beachten, dass Multi-Table-Updates die „LIMIT“-Klausel nicht unterstützen, sodass dadurch möglicherweise mehr Zeilen als beabsichtigt aktualisiert werden könnten. Erwägen Sie in solchen Fällen die Verwendung gespeicherter Prozeduren oder Transaktionen für eine detailliertere Kontrolle über die Aktualisierungen.

Das obige ist der detaillierte Inhalt vonWie kann ich mehrere MySQL-Tabellen effizient mit identischen Werten 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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage