Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mengemas kini Baris Postgres Tertentu daripada Fail CSV?

Bagaimana untuk Mengemas kini Baris Postgres Tertentu daripada Fail CSV?

Linda Hamilton
Linda Hamiltonasal
2025-01-15 07:55:45626semak imbas

How to Update Specific Postgres Rows from a CSV File?

Menggunakan Data CSV untuk Mengemas kini Baris Postgres Tertentu

Panduan ini menunjukkan cara mengemas kini baris terpilih dengan cekap dalam jadual PostgreSQL menggunakan data daripada fail CSV. Kami akan memanfaatkan perintah COPY dan UPDATE untuk tugasan ini.

Senario:

Bayangkan jadual PostgreSQL, 'tbl', dengan lajur 'id', 'pisang' dan 'epal'. Matlamatnya adalah untuk mengemas kini hanya lajur 'pisang' untuk baris tertentu, berdasarkan maklumat dalam fail CSV.

Prosedur:

Penyelesaian melibatkan langkah berikut:

  1. Buat Jadual Sementara:

    Bina jadual sementara, tmp_x, mencerminkan struktur jadual 'tbl':

    <code class="language-sql">CREATE TEMP TABLE tmp_x (id int, apple text, banana text);</code>
  2. Import Data CSV:

    Import kandungan fail CSV ke dalam tmp_x menggunakan perintah COPY. Ingat untuk menggantikan /absolute/path/to/file dengan laluan fail sebenar:

    <code class="language-sql">COPY tmp_x FROM '/absolute/path/to/file' (FORMAT csv);</code>
  3. Kemas kini Jadual Utama:

    Laksanakan pernyataan UPDATE untuk mengubah suai lajur 'pisang' dalam 'tbl'. Ini menggunakan data daripada tmp_x, memadankan baris berdasarkan lajur 'id':

    <code class="language-sql">UPDATE tbl
    SET    banana = tmp_x.banana
    FROM   tmp_x
    WHERE  tbl.id = tmp_x.id;</code>
  4. Alih Keluar Jadual Sementara:

    Selepas kemas kini, alih keluar jadual sementara:

    <code class="language-sql">DROP TABLE tmp_x;</code>

Pendekatan Alternatif:

  • Penciptaan Jadual Sementara Ringkas: Jika fail CSV anda sepadan dengan struktur 'tbl', anda boleh mencipta tmp_x dengan lebih ringkas:

    <code class="language-sql"> CREATE TEMP TABLE tmp_x AS SELECT * FROM tbl LIMIT 0;</code>
  • Mengelakkan Keistimewaan Superuser: Untuk operasi COPY tanpa hak superuser, gunakan psql meta-command:

    <code class="language-sql"> \copy tmp_x FROM '/absolute/path/to/file' (FORMAT csv);</code>

Pautan Berguna:

Atas ialah kandungan terperinci Bagaimana untuk Mengemas kini Baris Postgres Tertentu daripada Fail CSV?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn