Heim >Backend-Entwicklung >Golang >Wie kann ich mehrere Zeilen in PostgreSQL mit einer einzigen Abfrage effizient massenhaft aktualisieren?

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

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-05 14:24:11202Durchsuche

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

Massenaktualisierung mehrerer Zeilen mit einer einzigen PostgreSQL-Abfrage

Die Aktualisierung mehrerer Zeilen in einer PostgreSQL-Datenbank mit Go kann effizient mit einem einzigen SQL erreicht werden Stellungnahme. Dieser Ansatz bietet eine bequeme Möglichkeit, mehrere Datensätze auf einmal zu aktualisieren, wodurch die Anzahl der erforderlichen Abfragen reduziert und die Leistung verbessert wird.

Um Massenaktualisierungen durchzuführen, können wir eine abgeleitete Tabelle verwenden, bei der es sich um eine temporäre Tabelle handelt, die innerhalb von erstellt wird Umfang einer Abfrage. Dadurch können wir Werte für die zu aktualisierenden Zeilen angeben. So geht's:

UPDATE t
SET column_a = v.column_a,
    column_b = v.column_b
FROM (VALUES (1, 'FINISH', 1234),
             (2, 'UNFINISH', 3124)
     ) v(id, column_a, column_b)
WHERE v.id = t.id;

In diesem Beispiel erstellen wir eine abgeleitete Tabelle namens v mit drei Spalten: id, Column_a und Column_b. Wir stellen Werte für zwei Zeilen bereit, die die Aktualisierungen darstellen, die wir vornehmen möchten. Die WHERE-Klausel gleicht die ID-Spalte der abgeleiteten Tabelle mit der ID-Spalte der Tabelle ab, die wir aktualisieren (t).

Dieser Ansatz macht es einfach, zusätzliche Zeilen zur Aktualisierung hinzuzufügen, indem einfach weitere Zeilen hinzugefügt werden die abgeleitete Tabelle. Dies ist weniger fehleranfällig als das Schreiben mehrerer einzelner Aktualisierungsanweisungen.

Das obige ist der detaillierte Inhalt vonWie kann ich mehrere Zeilen in PostgreSQL mit einer einzigen Abfrage effizient massenhaft 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