0

我正在尝试将 sql 转储导入到 postgresql db 作为-

sudo su postgres -c psql dbname < mydb_dump.sql 

这给出了错误 -

放
放
放
放
放
放
错误:函数“array_accum”已经存在,具有相同的参数类型
改变聚合
错误:函数“c”已经存在,具有相同的参数类型
改变聚合
错误:重复键值违反唯一约束“pg_ts_config_cfgname_index”
错误:重复键值违反唯一约束“pg_ts_config_map_index”

依此类推。这可能有什么问题?尝试用谷歌搜索它,但找不到任何指针。

Postgresql 版本是 8.4.1

谢谢 !!

4

1 回答 1

1

您应该在转储或加载转储之前从数据库中删除共享函数和对象。您在 template1 中注册了这些函数和对象,当您创建新数据库时,这些对象就在那里 - 当转储尝试再次创建它时,您会看到错误。

这个问题在 PostgreSQL 9.1 中得到了很好的解决。对于旧版本,请尝试对 pg_dump 使用选项 --clean

帕维尔

于 2011-12-15T13:38:33.697 回答