我试图通过在空数据库上执行pg_dump创建的SQL来恢复PostgreSQL数据库.

我得到了这个错误:

ERROR:  syntax error at or near "\"
LINE 5211: \.

第5210行和第5211行内容如下:

COPY auth_group (id, name) FROM stdin;
\.

它在我的Linux服务器上运行良好,我在那里使用以下命令:

psql-U dbname<转储文件.sql

但在Windows上,我不确定如何做到这一点,所以我一直在try 从pgAdminIII查询实用程序运行转储文件的sql.

从Windows上的转储导入db的推荐方法是什么?或者:如何解决这个语法问题?

非常感谢您的帮助!

马丁

推荐答案

psql上的-f filename参数将在文件中读取,因此不必通过管道输入.psql应该包含在windows中PostgreSQL的bin目录中.就像这样:

psql -d dbname -U username -f dumpfile.sql

如果psql可执行文件不在您的路径上,您可能需要包含它的完整路径,并且可能需要将".exe"添加到psql,因此它是"psql.exe".

还要确保版本号没有下降,我以前遇到过语法问题(例如,不要导出8.4数据库并try 将其加载到8.1数据库).如果是这样,您可能必须手动编辑转储文件.

Postgresql相关问答推荐

如何使用postgr sql regex删除重复项和inc表记录

PostgreSQL散列连接与嵌套循环和散列索引

Postgres SQL:获取列值在连续日期之间已更改的行

将具有自定义类型的表从一种模式复制到另一种模式

在 Windows 上使用 rsync 进行 Postgresql 副本升级

如何为基于复合类型的 Postgres DOMAIN 定义 CHECK 约束

替代在 PostgreSQL 函数中嵌套正则表达式替换?

新数据未保存到 Postgres 上的 Rails 数组列

PostgreSQL 输入结束时的语法错误

从 Postgres 数据库中删除所有函数

SQL数据库表中的多态性?

在 Postgresql 中拆分逗号分隔的字段并对所有结果表执行 UNION ALL

POSTGRESQL 中的 CHARINDEX (SQL SERVER) 相似函数是什么?

由于外键约束无法删除对象

PostgreSQL 嵌套 CTE 和 UNION

具有 DEFAULT NULL 的 MySQL 列 ?

错误:关系列不存在 PostgreSQL,无法运行插入查询

psql 将默认 statement_timeout 设置为 postgres 中的用户

pg_restore 目录错误

postgresql NOT ILIKE 子句不包含空字符串值