使用转储文件时出现 PostgreSQL 语法错误

PostgreSQL syntax error when working with dump file

提问人:user401398 提问时间:9/6/2018 最后编辑:jarlhuser401398 更新时间:9/6/2018 访问量:1896

问:

我是 PostgreSQL 的新手,我正在研究 pgAdmin 4。我有一个转储文件,我需要使用它来将数据从转储文件加载到数据库中。我创建了一个新数据库,并尝试将转储文件中的数据加载到其中。我正在做的是,我在pgAdmin上打开转储文件,它包含我只需要执行的所有代码,数据将被加载到数据库中。但是当我执行文件时,它在 1 行处向我显示语法错误。下面给出了这部分代码的行。

COPY public.deals (id, startup_id, investor_group_id) FROM stdin;

1   51  2

2   33  7

3   3   5

4   17  9

5   27  10

6   41  12

7   45  3

8   19  13

9   2   11

10  11  10

\.

我收到以下错误 -

ERROR:  syntax error at or near "1"

LINE 89: 1 51 2

        ^

我不知道该怎么办。如果有人能帮助我,那就太好了。

PostgreSQL pgadmin-4

评论

0赞 Joe Love 9/6/2018
这个 1 51 2 数据是否直接在您的“副本”语句所在的文件中?必须重定向 Stdin 或从另一个文件读取。
0赞 user401398 9/6/2018
是的,一切都在同一个文件中。首先,它创建一个名为 public.deals 的表,然后将所有数据从 stdin 复制到该 public.deals 中。但它向我展示了 1 52 2 行的语法错误。
0赞 Joe Love 9/6/2018
你不能在pgAdmin中这样做,反正不能以这种方式。
0赞 Joe Love 9/6/2018
您没有使用单独的数据文件是否有原因?您可以执行 SQL 转储,其中所有内容都作为 SQL 命令放入 1 个文件中,但是,您必须以这种方式进行转储。如果您需要帮助,请告诉我。

答:

3赞 Laurenz Albe 9/6/2018 #1

不能使用 pgAdmin 还原此类转储。

用:psql

psql -U postgres -d mydb -f dumpfile

评论

0赞 user401398 9/6/2018
工作得很好。多谢。:)