为了从转储中恢复数据库,我想暂时禁用我已清空的数据库所有表中的所有约束(postregsql 8.3)。
是否有一种安全的方法来修改 pg_constraint 表中的字段,可以轻松绕过约束?
当我查看文档pg_constraint时,我不这么认为。
是否可以删除 pg_constraint 表内容,然后重新填充?
如果没有,人们如何使用充满约束和外键的表来恢复/复制数据库?(我的目标数据库具有架构,但所有列都是空的)。
编辑:虽然 Erwin Brandstetter 的回答是对我的精确问题的好回答(带有明智的警告)......我在恢复期间避免外键错误的一般问题的解决方案是在使用 pg_restore 时使用标志 --disable-triggers。
最后,我的两行命令现在是:
pg_dump.exe -h %ipAddress% -p 5432 -U postgres -F c -a -v -f %file% mydb
pg_restore.exe -h localhost -p 5432 -U postgres -d mydb -v %file% --disable-triggers
它工作正常。