在Windows命令行中,有没有一种使用'COPY'命令(PostgreSQL)的方法?

6
尝试在Windows命令行中使用PostgreSQL的“copy”命令:
COPY myTable FROM value.txt (DELIMITER('|'));

我在bin目录中找不到“copy”可执行文件。
您能告诉我如何在cli中运行“copy”命令吗?
补充: 我的Windows应用程序将使用“复制”功能。 需要直接从应用程序运行它。
提前致谢。
我可以通过以下方法看到所需的结果。
psql.exe -f copy.sql -p 5433 -U user -s postgres

copy.sql
\copy TARGET_TABLE FROM source.txt (DELIMITER('#')); 

这篇stackoverflow文章对你有用吗? - Tim Biegeleisen
看起来这是为了备份所有数据库?我只需要经常将文本文件上传到一个表中。谢谢。 - Sigularity
你是想要复制整个表格,还是从源文本文件中插入到表格中? - Tim Biegeleisen
源文本文件中有几行文本,我想将它们上传到表格中。看起来像是INSERT。谢谢。 - Sigularity
你是否使用任何图形用户界面,例如PgAdmin? - Shubham Batra
显示剩余2条评论
2个回答

5

您已经有了正确的命令(COPY),但是如果您想要从Windows命令行使用COPY命令,则需要开始与Postgres的交互会话。

psql -U username yourdb

这将使你处于一个提示符,看起来像下面的样子:
yourdb=#

现在您可以使用COPY命令并且它应该可以工作:
COPY myTable FROM value.txt (DELIMITER('|'))

您遇到的问题是,COPY 不是 Windows 可执行程序,而是 Postgres 命令,只能由 Postgres 理解。

我明白了。我的Windows应用程序应该直接使用“复制”功能,所以我想知道是否可以在不在提示中输入“COPY”命令的情况下上传文本文件内容。 - Sigularity
你可能可以编写一个批处理脚本,在后台启动Postgres会话。输入可以是你想要运行的COPY查询。 - Tim Biegeleisen
我刚刚使用了“-f”选项来访问copy.sql。 - Sigularity

0

加载Json使用以下命令 - \COPY myTable (data) FROM '~specifypath/data.json';

data是您想要推送Json的列。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接