【发布时间】:2015-09-03 02:53:21
【问题描述】:
我设法从我的 129,000 行生产数据库(Heroku 上的 Postgres 9.4)中的一个表中删除了 4,000 行,但几天后才发现问题。
我有丢失前的备份,但只想有选择地将丢失的行恢复回到表中,保留它们的 id。 (完全恢复不是一个选项,因为新数据已经添加到表中。)
在本地测试数据库中,我已将备份表导入为articles_backup,以及实际的articles 表。我想在articles_backups 中找到articles 中缺少的所有行,然后将它们复制到一个新表articles_restores,然后我将恢复到生产数据库,回到articles 表中(保留记录ID )。
此查询成功返回所有已删除记录的id:
select articles_backups.id
from articles_backups
left outer join articles on (articles_backups.id = articles.id)
where articles.id is null
但我无法将结果复制到新表中。我没有成功尝试:
select *
into articles_restores
from articles_backups
left outer join articles on (articles_backups.id = articles.id)
where articles.id is null;
这给出了:
ERROR: column "id" specified more than once
【问题讨论】:
标签: sql ruby-on-rails postgresql heroku left-join