PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Bagaimana cara mengabaikan kesalahan dengan psql \copy meta-command

Anda tidak dapat melewati kesalahan tanpa melewatkan seluruh perintah hingga dan termasuk Postgres 14. Saat ini tidak ada penanganan kesalahan yang lebih canggih.

\copy hanyalah pembungkus SQL COPY yang menyalurkan hasil melalui psql. Manual untuk COPY :

COPY menghentikan operasi pada kesalahan pertama. Ini seharusnya tidak menyebabkan masalah jika terjadi COPY TO , tetapi tabel target akan sudah menerima baris sebelumnya dalam COPY FROM . Baris ini tidak akan terlihat atau dapat diakses, tetapi masih menempati ruang disk. Ini mungkin merupakan jumlah yang cukup besar dari ruang disk yang terbuang jika kegagalan terjadi dengan baik pada operasi penyalinan yang besar. Anda mungkin ingin mengaktifkan VACUUM untuk memulihkan ruang yang terbuang.

Penekanan saya yang berani. Dan:

COPY FROM akan memunculkan kesalahan jika ada baris file input yang berisi kolom lebih banyak atau lebih sedikit dari yang diharapkan.

COPY adalah cara yang sangat cepat untuk mengimpor / mengekspor data. Pemeriksaan yang canggih dan penanganan kesalahan akan memperlambatnya.

Ada upaya untuk menambahkan logging kesalahan ke COPY di Postgres 9.0 tetapi tidak pernah dilakukan.

Solusi

Perbaiki file masukan Anda.

Jika Anda memiliki satu atau lebih kolom tambahan di file masukan dan file sebaliknya konsisten , Anda dapat menambahkan kolom dummy ke tabel Anda isa dan jatuhkan itu setelahnya. Atau (pembersih dengan tabel produksi) impor ke tabel staging sementara dan INSERT kolom (atau ekspresi) yang dipilih ke tabel target Anda isa dari sana.

Jawaban terkait dengan petunjuk terperinci:

  • Bagaimana cara memperbarui baris yang dipilih dengan nilai dari file CSV di Postgres?
  • Perintah SALIN:salin hanya kolom tertentu dari csv


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Replikasi Streaming PostgreSQL vs Replikasi Logis

  2. Memiliki Group By Clauses — GeneralBits elein

  3. Tidak dapat terhubung ke postgres menggunakan jdbc di pyspark Shell

  4. Mengekspor database PostgreSQL dengan phpPgAdmin

  5. instal permata pg tidak dapat mengikat ke libpq