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

Wie kann ich mehrere Zeilen in einer einzelnen PostgreSQL-Abfrage aktualisieren?

Linda Hamilton
Freigeben: 2025-01-12 22:42:43
Original
508 Leute haben es durchsucht

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

PostgreSQL-Einzelabfrage aktualisiert mehrere Zeilen

In diesem Artikel wird erläutert, wie Sie mehrere Datenzeilen mithilfe einer einzigen Abfrage in einer PostgreSQL-Datenbank aktualisieren. Obwohl PostgreSQL die direkte Aktualisierung mehrerer Zeilen nicht unterstützt, gibt es mehrere Möglichkeiten, dieses Ziel zu erreichen.

Ein Ansatz besteht darin, eine Kombination aus der UPDATE ... FROM-Syntax und einer Zuordnungstabelle zu verwenden. Dies ermöglicht die Aktualisierung mehrerer Spalten und bietet eine größere Flexibilität. Der folgende Code demonstriert diesen Ansatz:

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

Bei Bedarf können weitere Spalten hinzugefügt werden:

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

Ein anderer, saubererer Ansatz ist die Verwendung der INSERT ... ON CONFLICT ... UPDATE-Syntax von PostgreSQL, die Einfüge- und Aktualisierungsfunktionen in einer einzigen Abfrage kombiniert. Diese Methode erfordert jedoch die Erstellung eines eindeutigen Index für die Spalte, der die zu aktualisierende Zeile identifiziert.

Das obige ist der detaillierte Inhalt vonWie kann ich mehrere Zeilen in einer einzelnen PostgreSQL-Abfrage 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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage