Ada trik lama untuk menggunakan pipa bernama (berfungsi di Unix, tidak tahu tentang Windows)
- buat pipa bernama:
mkfifo /tmp/omyfifo
- tulis isi file ke dalamnya:
zcat mycsv.csv.z > /tmp/omyfifo &
- [dari psql]
copy mytable(col1,...) from '/tmp/omyfifo'
- [setelah selesai] :
rm /tmp/omyfifo
zcat
di backgound akan memblokir sampai pembaca (di sini:COPY
command) akan mulai membaca, dan akan selesai pada EOF. (atau jika pembaca menutup pipa)
Anda bahkan dapat memulai beberapa pasangan pipa+zcat, yang akan diambil oleh beberapa COPY
pernyataan dalam skrip sql Anda.
Ini akan bekerja dari pgadmin, tetapi fifo (proses +zcat) harus ada di mesin tempat server DBMS berjalan.
BTW:trik serupa menggunakan netcat dapat digunakan untuk membaca file dari mesin jarak jauh (yang tentu saja harus menulis file ke soket jaringan)