【发布时间】:2013-03-19 22:48:11
【问题描述】:
我在一个数据库上运行了 pg_dump,并使用 pg_restore 恢复到一个新的、完全为空的数据库中,我得到一个错误:
pg_restore: [archiver (db)] could not execute query: ERROR: could not create unique index "bibleverses_userversestatus_pkey"
DETAIL: Table contains duplicated values.
检查恢复后的表会显示重复的主键值,这会阻止创建索引。
但是,检查 pg_dump 来自的原始数据库并没有显示这个重复的行 - 一切都是应该的(并且必须是,因为约束)。
这是怎么发生的,如何解决?
(这是一个持续性错误,而不是一次性错误 - 再次运行 pg_dump 并不能修复它)。
编辑:抱歉,完全忘记了版本信息:pg_dump/postgres 8.3.11,pg_restore 9.1.6
【问题讨论】:
-
您使用的是来自同一
postgres版本的pg_dump吗?建议始终使用新的pg_dump二进制文件从旧版本转储数据 -
您使用的是哪个版本的 Postgresql?存在与重复密钥违规相关的错误,例如:postgresql.org/message-id/…
-
开发人员如何在不提供他使用的版本的情况下提出这样的问题?打败我。
-
抱歉,版本信息已添加。
标签: postgresql pg-dump