小编Lor*_*xus的帖子

postgresql 中的数据库丢失行,如何用备份副本填充丢失的行?

我有一个大问题,我对 postgresql 不太好,因为我使用 Django 进行查询,而且我只有 sql 查询的基础知识。

我的问题是有一个问题,超级用户删除了一个与我的表“客户”相关的字段(我不知道她是怎么做的,我没有设计系统,我只是管理它),所以有 120 个客户端从表中消失了,我从昨天开始备份(我知道备份有多重要),我想将所有数据从我的备份“复制”到缺少行的数据库中。

我试图只从 pgadmin 恢复表(简单的方法),但它说“重复键值违反了唯一约束“user_client_pkey”,详细信息:Key(id) = 461 已经存在。所以我猜我无法恢复,因为有与确切 id 匹配的值,是否有任何简单的方法(或程序)可以复制丢失的行,只提供 id 并填充我备份中的数据?

类似于比较行,如果没有具有该 id 的行,则在那里插入数据?我知道这不是一个简单的查询,但任何帮助都会很棒。我确定最简单的方法是回滚、删除数据库和恢复,但是有这么多表有更多信息,客户端是唯一真正需要恢复的。

我尝试创建一个新表并从备份中恢复数据但它没有填充(可能是因为它的名称与新表不匹配),我还更改了缺少行的表的名称,然后创建一个新表并从备份中恢复,但 pk 丢失了,我收到此错误:

我更改了表cliente的原始表,然后创建了一个新表并将其命名为原始表,恢复数据库,它填满了,但给了我这个错误:

由于表 public."admin_clienteB" 没有主键或 OID,您只能查看数据。没有主键的“编辑数据”工具无法插入新行和更改现有行。

任何帮助都会很棒。

postgresql pgadmin postgresql-9.4 django

2
推荐指数
1
解决办法
2458
查看次数

标签 统计

django ×1

pgadmin ×1

postgresql ×1

postgresql-9.4 ×1