如何在PostgreSQL中从本地文件复制到远程数据库?[关闭]


9

我是psql的新手,需要一些帮助。如何将本地CSV加载到远程数据库?

我正在使用以下命令

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

但这会在远程数据库上搜索文件,而我需要在本地PC上进行搜索。


4
\copy读取本地文件(这是一个psql命令,只能从内部使用psql)。COPY但是(请注意缺少的``)将读取服务器上的文件。
a_horse_with_no_name

所以没有办法吗?我需要将文件复制到远程服务器吗?
user22149 2013年

复制和\ copy有什么区别吗?抱歉,我真的是psql的新手,只知道oracle,我可以毫无问题地做到这一点
user22149 2013年

区别在于,一个读取服务器上的文件,另一个读取客户端上的文件。显然,读取服务器上的文件会更快。
a_horse_with_no_name 2013年

1
@ user22149使用文字选项卡或E'\t'。但是,如果您始终不指定delim,则tab应该是默认值。
Craig Ringer

Answers:


5

这里有两种可能性。

  1. 如果您使用的是psql,那么\ copy是您提到的正确方法。

  2. 如果您使用的是已编写的客户端程序,则需要

    COPY FROM STDIN.....

然后输入文件(请参阅COPY命令文档

COPY命令是一个有点奇怪的野兽。它是PostgreSQL当前从Quel支持的一个命令,因此它是非标准的,并且基于与其余命令不同的范例。因此,请务必仔细阅读有关此命令的文档。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.