Aktualisieren Sie mehrere Tabellen mit einer Abfrage in MySQL

Rashmi Patidar 30 Januar 2023
  1. Vorteile der Aktualisierung mehrerer Tabellen mit einer Abfrage in MySQL
  2. Verwenden Sie das Schlüsselwort UPDATE, um mehrere Tabellen mit einer Abfrage in MySQL zu aktualisieren
Aktualisieren Sie mehrere Tabellen mit einer Abfrage in MySQL

Es kann Fälle geben, in denen ein Benutzer gleichzeitige Aktualisierungen in der logisch verknüpften Tabelle vornehmen möchte. Diese logisch zusammenhängenden Tabellen werden über einige Attribute miteinander verknüpft.

Vorteile der Aktualisierung mehrerer Tabellen mit einer Abfrage in MySQL

Ähnliche Attribute innerhalb der Tabellen werden verwendet, um eine Aktualisierungsabfrage zu erstellen. Die Aktualisierungsabfrage führt basierend auf Bedingungen mehrere Zeilenaktualisierungen in verschiedenen Tabellen durch.

Die Aktualisierungsabfragen für mehrere Tabellen sind geeignet, wenn eine ähnliche Situation auftritt. Die Vorteile der Verwendung dieser Abfrage zur Aktualisierung mehrerer Tabellen sind:

  1. Dies führt zu Aktualisierungen in Zeilen auf einmal, anstatt einzelne Aktualisierungen in jeder Tabelle vorzunehmen.
  2. Dies verringert auch die Gesamtzeit zum Aktualisieren von Einträgen in verschiedenen Tabellen.
  3. Dies verringert die Wahrscheinlichkeit von inkonsistenten Aktualisierungen in Tabellen.
  4. Ähnliche Antwort von allen Tischen zu einem bestimmten Zeitpunkt.

Verwenden Sie das Schlüsselwort UPDATE, um mehrere Tabellen mit einer Abfrage in MySQL zu aktualisieren

In der Mehrfachtabellen-Aktualisierungsabfrage wird jeder Datensatz, der eine Bedingung erfüllt, aktualisiert. Auch wenn die Kriterien mehrmals übereinstimmen, wird die Zeile nur einmal aktualisiert.

Die Syntax zum Aktualisieren mehrerer Tabellen kann nicht mit den Schlüsselwörtern ORDER BY und LIMIT verwendet werden.

Die Syntax für das Schlüsselwort UPDATE:

UPDATE table1, table2, ...
    SET column1 = value1,
        column2 = value2,
        ...
[WHERE conditions]

Multiple Update ist kein kombiniertes Schlüsselwort, das in der MySQL-Sprache vorhanden ist. Die Syntax wird durch die Kombination verschiedener Schlüsselwörter gebildet, die bei der Gruppierung von zwei oder mehr Tabellen helfen, wie das Schlüsselwort join.

Die Join-Typen werden verwendet, um mit einer einzelnen Abfrage mehrere Tabellen gleichzeitig zu aktualisieren. Lassen Sie uns dies verstehen, indem Sie mehrere Tabellen gleichzeitig aktualisieren.

Betrachten Sie zwei Tabellen mit den Namen library und stu_book. Und betrachten Sie den Fall, wenn ein Buch von der Bibliothek an einen Studenten ausgegeben wird.

Die Anzahl der Bücher in der Bibliothek nimmt ab, während die Anzahl der Bücher mit Studenten zunimmt. Und das ist das Szenario, in dem zwei separate Aufrufe erforderlich sind.

Um separate Aktualisierungen in einer RDBMS-Tabelle zu vermeiden, aktualisieren wir die Zeilen in zwei Tabellen mit einer einzigen Abfrage. Unten ist die Liste der Anweisungen, die vor dem Aktualisierungsaufruf ausgeführt werden sollen.

Liste der Abfragen vor der eigentlichen Abfrage auf Tabellen:

  • Erstellen Sie zwei Entitäten namens library und stu_book.
  • Das Schema für die beiden ist unten geteilt:

    Bibliotheks- und stu_book-Tabellenschema

  • Fügen Sie einige gemeinsame Werte einzeln in Tabellen ein, wie unten gezeigt.

    Aufzeichnungen, die in die Tabellen eingefügt wurden, um das Szenario zu präsentieren

  • Versuchen Sie, den Anwendungsfall zu implementieren, indem Sie in beiden Tabellen gleichzeitige Erhöhungen oder Verringerungen vornehmen.

    mehrere Aktualisierungen in zwei Tabellen gleichzeitig mit einer einzigen Abfrage

Abfrage zum Ausführen der MySQL-Anweisung:

UPDATE library l, stu_book s
    SET l.book_count = l.book_count - 2,
        s.book_count = s.book_count + 2
WHERE l.id = s.book_id;

In der obigen Abfrage kombiniert der innere Join intern die beiden Tabellen und bearbeitet die kombinierte Tabelle, nachdem er die Einschränkungen für die Tabellen überprüft hat. Wenn kein Schlüsselwort angegeben wird, wird der innere Join angewendet.

Joins wie äußerer Join, der richtige äußere Join, der Benutzer sollte das richtige Schlüsselwort verwenden. Die Verknüpfung kann nur in den Fällen durchgeführt werden, in denen die beiden gruppierten Tabellen ein ähnliches/übereinstimmendes Attribut haben.

Das Schlüsselwort SET wird zusammen mit dem Schlüsselwort UPDATE verwendet, um die neuen Werte in bestehenden Zeilen festzulegen. Es überschreibt die älteren Werte, indem es neue Daten darüber schreibt.

Hier aktualisiert set die Bücheranzahl der Tabelle stu_book, und die gleiche Anzahl von Zählungen wird von der Bücheranzahl der Bibliothek verringert.

Die Anzahl wird nicht für alle Zeilen beider Tabellen aktualisiert. Stattdessen wird die Einschränkung durch das Schlüsselwort WHERE festgehalten.

Das Schlüsselwort WHERE führt die eigentliche Filterung der Zeilen durch. Das Schlüsselwort filtert die Zeile, nachdem Bedingungen in Tabellen überprüft wurden.

Hier besagt dieses Schlüsselwort, dass library_id mit book_id der Tabelle stu_book übereinstimmen sollte.

Die Ausgabe listet das Ergebnis für die Gesamtzahl der betroffenen Zeilen in beiden Tabellen auf. Unten ist die Ausgabe, die die Anzahl der betroffenen Zeilen bestätigt.

Query OK, 2 rows affected (0.02 sec)
Rows matched: 2  Changed: 2  Warnings: 0

Unten ist die endgültige Ausgabe für die obige Abfrage in der lokalen Ausführungsumgebung oder Eingabeaufforderung.

Screenshot der lokalen Ausführung:

Ausgabe, nachdem die Aktualisierung ausgelöst wurde

Rashmi Patidar avatar Rashmi Patidar avatar

Rashmi is a professional Software Developer with hands on over varied tech stack. She has been working on Java, Springboot, Microservices, Typescript, MySQL, Graphql and more. She loves to spread knowledge via her writings. She is keen taking up new things and adopt in her career.

LinkedIn

Verwandter Artikel - MySQL Table