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
Lepaskan: 2025-01-15 07:55:45
asal
675 orang telah melayarinya

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>
    Salin selepas log masuk
  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>
    Salin selepas log masuk
  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>
    Salin selepas log masuk
  4. Alih Keluar Jadual Sementara:

    Selepas kemas kini, alih keluar jadual sementara:

    <code class="language-sql">DROP TABLE tmp_x;</code>
    Salin selepas log masuk

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>
    Salin selepas log masuk
  • 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>
    Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan