我在一个数据库上运行了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
二进制文件从旧版本中转储数据。 - mvp