Einzelabfrage-Updates in PostgreSQL: Eine Leistungssteigerung
PostgreSQL bietet, wie viele Datenbanksysteme, effiziente Methoden zum gleichzeitigen Aktualisieren mehrerer Zeilen mit einer einzigen Abfrage. Dieser Ansatz verbessert die Leistung erheblich, insbesondere beim Umgang mit umfangreichen Datensätzen.
Die UPDATE
-Anweisung mit der SET
-Klausel bietet eine unkomplizierte Methode für bedingte Aktualisierungen. Um beispielsweise column_a
basierend auf unterschiedlichen Werten in column_b
zu ändern, können Sie diese prägnante Syntax verwenden:
<code class="language-sql">UPDATE table_name SET column_a = 1 WHERE column_b = '123', column_a = 2 WHERE column_b = '345';</code>
Für komplexere Aktualisierungen mit mehreren Spalten bietet das UPDATE ... FROM
-Konstrukt jedoch überlegene Flexibilität. Dazu gehört die Erstellung einer temporären Zuordnungstabelle zur Angabe der Aktualisierungen.
Lassen Sie uns dies anhand eines Beispiels veranschaulichen, bei dem sowohl column_a
als auch column_c
basierend auf column_b
:
<code class="language-sql">UPDATE test AS t SET column_a = c.column_a, column_c = c.column_c FROM (VALUES ('123', 1, '---'), ('345', 2, '+++') ) AS c(column_b, column_a, column_c) WHERE c.column_b = t.column_b;</code>
Diese Abfrage nutzt eine VALUES
-Klausel, um die Zuordnungstabelle c
zu definieren und neue Werte effektiv mit vorhandenen Zeilen in test
basierend auf übereinstimmenden column_b
-Werten zu verknüpfen. Dieser optimierte Ansatz ermöglicht effiziente, mehrspaltige Aktualisierungen innerhalb einer einzigen Abfrage.
Das obige ist der detaillierte Inhalt vonWie kann ich mehrere Zeilen in PostgreSQL mit einer einzigen Abfrage effizient aktualisieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!