Heim > Datenbank > MySQL-Tutorial > Wie aktualisiere ich Postgres-Zeilen mit Daten aus einer CSV-Datei?

Wie aktualisiere ich Postgres-Zeilen mit Daten aus einer CSV-Datei?

Barbara Streisand
Freigeben: 2025-01-15 06:13:44
Original
146 Leute haben es durchsucht

How to Update Postgres Rows with Data from a CSV File?

Verwenden von CSV-Daten zum Aktualisieren von Postgres-Zeilen: Eine Schritt-für-Schritt-Anleitung

Diese Anleitung beschreibt, wie Sie vorhandene Postgres-Zeilen mithilfe von Daten aktualisieren, die aus einer CSV-Datei stammen. Der Prozess umfasst mehrere wichtige Schritte:

1. Einrichten einer temporären Tabelle

Erstellen Sie zunächst eine temporäre Tabelle in Ihrer Postgres-Datenbank. Diese Tabelle dient als Staging-Bereich für die CSV-Daten. Das Tabellenschema muss die Struktur der Zieltabelle widerspiegeln. Zum Beispiel:

<code class="language-sql">CREATE TEMP TABLE tmp_x (id int, banana text, apple text);</code>
Nach dem Login kopieren

2. CSV-Daten importieren

Verwenden Sie den Befehl COPY, um den Inhalt der CSV-Datei in die temporäre Tabelle zu laden. Denken Sie daran, /absolute/path/to/file durch den tatsächlichen Dateipfad zu ersetzen:

<code class="language-sql">COPY tmp_x FROM '/absolute/path/to/file' (FORMAT csv);</code>
Nach dem Login kopieren

3. Durchführen des Updates

Führen Sie mit den Daten in der temporären Tabelle eine UPDATE-Anweisung aus, um die Zieltabelle zu ändern. In diesem Beispiel wird die Spalte banana basierend auf übereinstimmenden id-Werten aktualisiert:

<code class="language-sql">UPDATE tbl
SET    banana = tmp_x.banana
FROM   tmp_x
WHERE  tbl.id = tmp_x.id;</code>
Nach dem Login kopieren

4. Entfernen der temporären Tabelle

Nachdem das Update abgeschlossen ist, entfernen Sie die temporäre Tabelle, um Ressourcen zurückzugewinnen:

<code class="language-sql">DROP TABLE tmp_x;</code>
Nach dem Login kopieren

Wichtige Hinweise:

  • Zugriffsberechtigungen: Das Aktualisieren von Daten mit COPY erfordert im Allgemeinen Superuser-Berechtigungen oder entsprechend zugewiesene Rollen (insbesondere in Postgres 10 und höher).
  • Alternative für Nicht-Superuser: Der copy-Metabefehl im psql-Client bietet eine Alternative für Benutzer ohne Superuser-Berechtigungen.
  • Überlegungen zur Leistung:Bei großen Datenmengen kann die Optimierung der Leistung das Erhöhen temp_buffers und die Indizierung der temporären Tabelle umfassen.

Diese Methode bietet eine effiziente Möglichkeit, bestimmte Postgres-Zeilen mithilfe von Daten aus einer CSV-Datei zu aktualisieren.

Das obige ist der detaillierte Inhalt vonWie aktualisiere ich Postgres-Zeilen mit Daten aus einer CSV-Datei?. 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