Heim >Datenbank >MySQL-Tutorial >Wie kann ich mehrere Zeilen in PostgreSQL mit einer einzigen Abfrage aktualisieren?

Wie kann ich mehrere Zeilen in PostgreSQL mit einer einzigen Abfrage aktualisieren?

Linda Hamilton
Linda HamiltonOriginal
2025-01-12 22:52:42372Durchsuche

How Can I Update Multiple Rows in PostgreSQL with a Single Query?

Effizientes Aktualisieren mehrerer Zeilen in PostgreSQL

PostgreSQL bietet leistungsstarke Methoden zum gleichzeitigen Aktualisieren mehrerer Zeilen und vermeidet so die Einschränkungen von Standard-Update-Anweisungen. Dieser Leitfaden zeigt einen äußerst effektiven Ansatz.

Methode: Nutzung der UPDATE ... FROM-Klausel

Die UPDATE ... FROM-Syntax bietet eine saubere und effiziente Möglichkeit, mehrere Zeilen basierend auf Daten aus einer anderen Quelle zu aktualisieren. Dieser „Zuordnungstabellen“-Ansatz vereinfacht das gleichzeitige Aktualisieren mehrerer Spalten.

Um beispielsweise column_a-Werte basierend auf entsprechenden column_b-Werten zu aktualisieren:

<code class="language-sql">UPDATE test AS t
SET column_a = c.column_a
FROM (VALUES
    ('123', 1),
    ('345', 2)
) AS c(column_b, column_a)
WHERE c.column_b = t.column_b;</code>

Diese Abfrage verwendet eine VALUES-Klausel, um die Zuordnungstabelle zu erstellen. Das Erweitern zur Aktualisierung mehrerer Spalten ist unkompliziert:

<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 Technik bietet eine skalierbare und flexible Lösung zum Aktualisieren mehrerer Zeilen in PostgreSQL mit einer einzigen, prägnanten Abfrage.

Das obige ist der detaillierte Inhalt vonWie kann ich mehrere Zeilen in PostgreSQL mit einer einzigen Abfrage aktualisieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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