【问题标题】:Is there a way to use 'COPY' command(PostgreSQL) in windows cli?有没有办法在 windows cli 中使用 'COPY' 命令(PostgreSQL)?
【发布时间】:2016-03-24 17:35:37
【问题描述】:

尝试在 windows cli 命令中使用 PostgreSQL 的“复制”命令:

COPY myTable FROM value.txt (DELIMITER('|'));

我在 bin 目录中找不到“复制”可执行文件。

您能告诉我如何在 cli 中运行“复制”命令吗?

添加: 我的 Windows 应用程序将使用“复制”功能。 需要直接从Application运行。

提前致谢。

我可以通过以下方法看到我需要的结果。

psql.exe -f copy.sql -p 5433 -U user -s postgres

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

【问题讨论】:

  • this SO article 对你有用吗?
  • 好像是为了备份所有数据库?我只需要经常将文本文件上传到表格中。谢谢。
  • 您是要复制整个表格,还是要从源文本文件插入到表格中?
  • 源文本文件中有几行文本,我想将这些上传到表格中。看起来像插入。谢谢。
  • 你是否在使用像 PgAdmin 这样的 GUI?

标签: postgresql


【解决方案1】:

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

psql -U username yourdb

这应该会让您看到如下提示:

yourdb=#

现在您可以使用COPY 命令,它应该可以工作了:

COPY myTable FROM value.txt (DELIMITER('|'))

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

【讨论】:

  • 我明白了。我的 Windows 应用程序应该直接使用“复制”功能,所以我想知道是否可以在不在提示符中输入“复制”命令的情况下上传文本文件内容。
  • 您也许可以编写一个批处理脚本,该脚本将在幕后开始 Postgres 会话。输入可能是您要运行的 COPY 查询。
  • 我只是使用了“-f”选项来访问copy.sql。
【解决方案2】:

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

data是你要推送json的列

【讨论】:

    猜你喜欢
    • 2022-06-11
    • 1970-01-01
    • 2015-10-30
    • 1970-01-01
    • 2015-05-06
    • 1970-01-01
    • 1970-01-01
    • 2011-12-05
    • 2019-09-22
    相关资源
    最近更新 更多