Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mengemas kini Baris Postgres Tertentu daripada Fail CSV?
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:
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>
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>
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>
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!