PostgreSQL'de yerel dosyadan uzak DB'ye nasıl kopyalayabilirim? [kapalı]


9

Ben psql bir acemi ve biraz yardıma ihtiyacım var. Yerel bir CSV'yi uzak bir DB'ye nasıl yükleyebilirim?

Aşağıdaki komutu kullanıyorum

\COPY test(user_id, product_id, value) 
      FROM '/Users/testuser/test.tsv' WITH DELIMITER '\t' CSV HEADER;

Ancak bu işlemi yerel bilgisayarımda yapmam gereken uzak DB'deki dosyayı arar.


4
\copyyerel bir dosya okur (bu bir psqlkomuttur ve sadece içeriden kullanılabilir psql). COPYancak (eksik ``) sunucudaki dosyayı okuyacağını unutmayın.
a_horse_with_no_name

yani bunun bir yolu yok mu? Uzak sunucuya dosya kopyalamak gerekir?
user22149

copy ve \ copy arasında bir fark var mı? üzgünüm ben psql gerçekten yeni am sadece orada oracle biliyorum ben herhangi bir sorun olmadan bunu yapabilirsiniz
user22149

Fark şu ki, biri sunucudaki dosyayı okurken diğeri istemcideki dosyayı okuyor. Açıkçası sunucudaki dosyayı okumak daha hızlı olacaktır.
a_horse_with_no_name

1
@ user22149 Değişmez bir sekme veya öğesini kullanın E'\t'. Yine de bir sınır belirtmezseniz, sekme varsayılan olmalıdır.
Craig Ringer

Yanıtlar:


5

Burada iki olasılık var.

  1. Psql kullanıyorsanız, \ copy, belirttiğiniz gibi şeyler yapmanın doğru yoludur.

  2. Yazdığınız bir istemci programını kullanıyorsanız,

    COPY FROM STDIN.....

Ve sonra dosyayı besleyin ( COPY komutundaki belgelere bakın .

COPY komutu biraz garip bir canavar. PostgreSQL'in şu anda Quel'den desteklediği tek komuttur ve bu nedenle hem standart değildir hem de komutların geri kalanından farklı bir paradigmaya sahip bir şeye dayanır. Bu nedenle dokümanları bu komutta nispeten dikkatlice okumak önemlidir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.