Heim > Datenbank > MySQL-Tutorial > Wie aktualisiere ich effizient mehrere Tabellen mit ähnlichen Werten in MySQL?

Wie aktualisiere ich effizient mehrere Tabellen mit ähnlichen Werten in MySQL?

Mary-Kate Olsen
Freigeben: 2024-11-04 00:44:30
Original
389 Leute haben es durchsucht

How to Efficiently Update Multiple Tables with Similar Values in MySQL?

Aktualisieren mehrerer Tabellen mit ähnlichen Werten in MySQL

In dem Szenario, in dem Sie zwei Tabellen haben, die dieselben Aktualisierungen zur Denormalisierung erfordern, können Sie diese verwenden Multi-Table-Updates, die von MySQL angeboten werden. Dieser Ansatz ermöglicht gleichzeitige Aktualisierungen mehrerer Tabellen mit einer einzigen Anweisung.

Um dies zu erreichen:

  1. Identifizieren Sie die gemeinsamen Spalten: Bestimmen Sie, welche Spalten in beiden Tabellen vorhanden sind müssen mit denselben Werten aktualisiert werden.
  2. Verbinden Sie die Tabellen:Verwenden Sie einen INNER JOIN, um die Tabellen basierend auf den gemeinsamen Spalten (z. B. Benutzer-ID) zu verbinden.
  3. Geben Sie die Aktualisierungen an: Listen Sie in der SET-Klausel die zu aktualisierenden Spalten und ihre entsprechenden Werte auf. Stellen Sie sicher, dass die Werte in beiden Tabellen konsistent sind.
  4. Ergebnisse filtern: Fügen Sie alle erforderlichen Bedingungen (z. B. WHERE-Klauseln) hinzu, um die spezifischen zu aktualisierenden Zeilen zu filtern.

Betrachten Sie beispielsweise die folgende Abfrage:

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
Nach dem Login kopieren

Hier werden die Gewinn-, Streak- und Punktespalten beider Tabellen schrittweise für eine bestimmte Benutzer-ID und einen bestimmten Deckelwert aktualisiert. Beachten Sie, dass die Deckelspalte in Table_Two nicht vorhanden ist, sodass ihr Wert nicht aktualisiert wird.

Zusätzliche Überlegungen:

  • Mehrtabellenaktualisierungen unterstützen LIMIT nicht , sodass sich Aktualisierungen möglicherweise auf mehr Zeilen als beabsichtigt auswirken.
  • Gespeicherte Prozeduren oder Transaktionen bieten möglicherweise in bestimmten Situationen eine bessere Kontrolle.

Das obige ist der detaillierte Inhalt vonWie aktualisiere ich effizient mehrere Tabellen mit ähnlichen Werten in MySQL?. 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