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

POSTGRES SALIN DARI PROGRAM ke tabel dinamis dengan kolom yang tidak diketahui

Karena Anda tidak tahu jumlah/jenis baris di muka, saya sarankan Anda melakukan seperti ini:

  • (1) impor CSV Anda ke dalam tabel (sementara?) dengan satu kolom teks tanpa pemisahan. Gunakan backspace karakter sebagai pembatas sehingga seluruh baris yang diimpor akan tetap utuh;
CREATE TABLE IF NOT EXISTS rawtext_t (rawtext text);
COPY rawtext_t FROM <file_name> WITH (format 'csv', delimiter E'\b');
  • (2) menjalankan kueri yang membagi CSV menjadi larik teks - fungsi parse_csv , lalu gunakan kumpulan larik teks yang dihasilkan sebagai relevan (mungkin peta/masukkan ke dalam tabel target 'nyata')
WITH rawdata AS
(
 SELECT parse_csv(rawtext) arr FROM rawtext_t
) 
INSERT INTO real_t (...fields...) 
SELECT arr[1], arr[3], ...
FROM rawdata;

TRUNCATE TABLE rawtext_t;

Anda dapat menambahkan WHERE klausa di SELECT second kedua pernyataan untuk memfilter baris yang masuk jika perlu.

Opsi lain - yang sangat bagus menurut pemahaman saya - adalah menggunakan file_textarray_fdw yang sangat baik untuk efek yang kurang lebih sama.

Semoga ini memberi Anda ide &membantu.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana saya bisa mengubah Nama Database di AWS RDS untuk Postgresql?

  2. Salin data Tabel dari satu DB ke yang lain

  3. Cara membuat daftar tipe khusus menggunakan Postgres information_schema

  4. gabungkan semua baris kolom menjadi satu kolom dari tabel yang digabungkan

  5. Beberapa kasus ketika dengan output pada baris yang sama