Heim >Datenbank >MySQL-Tutorial >Wie kann ich mehrere Zeilen in einer einzelnen PostgreSQL-Abfrage aktualisieren?
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>
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>
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!