在 postgres 中使用 COPY FROM STDIN

Eug*_*ghi 16 postgresql pgadmin bulkcopy

我刚开始使用 Postgres,我正在尝试创建一个示例数据库来了解它的功能,环顾四周,我在 pgfoundry.org 中找到了一些脚本。我理解这些命令,因为我之前同时使用了 Oracle 和 MS-SQL,但是我运行的所有脚本在到达“COPY FROM”指令时都返回错误。更准确地说,错误是在应该插入给定表中的第一个元素处抛出。

我已经尝试将脚本作为查询和 pgScripts 运行,但是在这两种方式中,我在 COPY FROM 之后的第一行都收到错误。

我正在使用 pgAdminIII,我使用 StackBuilder 将 PostgreSQL 9.2.4.1 安装为 DB 驱动程序。我是否可能缺少一些阻止我运行此命令的基本配置,或者我只是不明白他们的工作方式?

编辑:
错误是:

ERROR:  syntax error at or near "7"
LINE 5600: 7 4 13 37 2012-03-10 16:41:43.797787 2012-03-10 16:41:43.797...
           ^

********** Error **********

ERROR: syntax error at or near "7"
SQL status: 42601
Char: 140891`
Run Code Online (Sandbox Code Playgroud)

文字在哪里:

COPY action_abilitations (id, group_action_id, partecipation_role_id, group_id, created_at, updated_at) FROM stdin;
7   4   13  37  2012-03-10 16:41:43.797787  2012-03-10 16:41:43.797787`
Run Code Online (Sandbox Code Playgroud)

Erw*_*ter 13

pgScript 是 pgAdmin 的本地脚本扩展,您在这里很可能想要它。

pgAdmin 是一个 GUI,而不是一个控制台应用程序 - 没有stdin你可以轻松使用的。如果您需要stdin流式传输内容,请使用 psql,它是一个控制台应用程序 - 带有\copypsql元命令

如果你有一个文件(你显然有),只需使用COPYpgAdmin 中的SQL :

COPY action_abilitations (id, group_action_id, ...)
FROM 'C:\Users\usernexus\Desktop\database05-12-2012.sql';
Run Code Online (Sandbox Code Playgroud)

该文件需要对postgres系统用户可读。

与 pgAdmin 支持列表密切相关的请求中的更多信息。