插入postgres数据库

时间:2016-10-20 17:30:44

标签: postgresql

我正在尝试将插入查询写入备份数据库。我将地点和实体表写入此数据库。问题是实体通过place.id列链接到位置。我在地方表格中添加了一个列place.original_id来存储它的原始ID'。所以现在我进入了新数据库,它的id列被更改但我已经存储了原始ID,所以我仍然可以将实体表链接到它。我试图弄清楚如何编写实体来获取新的id

到目前为止我到目前为止:

insert into entities_backup (id, place_id)
select 
  nextval('public.entities_backup_id_seq'),
  (select id from places where original_id = (select place_id from entities) as place_id
 from
   entities

我知道我遗失了一些东西,因为这不起作用。当entity.place_id = places.original_id时,我需要从地方获取id列。任何帮助都会很棒。

2 个答案:

答案 0 :(得分:1)

我认为这就是你想要的

insert into entities_backup (id, place_id)
select nextval('public.entities_backup_id_seq'), places.id 
from places, entities
where places.original_id = entities.place_id;

答案 1 :(得分:0)

  

我正在尝试将插入查询写入备份数据库。我将地点和实体表写入此数据库。问题是实体通过place.id列链接到位置。我在place表中添加了一个place.original_id列来存储它的原始'id'。所以现在我进入了新数据库,它的id列被更改但我已经存储了原始ID,所以我仍然可以将实体表链接到它。

首先没有这个问题会更简单。

更好的解决方案是将完整的主键和外键完全转储并加载placesentities,而不是尝试在事后修复此问题。 <{3}}或EXPORT等实用程序应该可以执行此操作。

抱歉,我不能多说。我知道Postgres,而不是Oracle。