首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >插入postgres数据库

插入postgres数据库
EN

Stack Overflow用户
提问于 2016-10-20 17:30:43
回答 2查看 69关注 0票数 0

我正在努力将insert查询写入备份数据库。我将位置和实体表写入此数据库。问题是实体通过place.id列链接到place。我在place表中添加了一个列place.original_id来存储它原来的'id‘。所以,现在我进入了新的数据库,它的id列改变了,但是我保存了原始的id,所以我仍然可以将实体表链接到它。我正在试图找出如何编写实体来获得新的id。

到目前为止,我认为:

代码语言:javascript
复制
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列。任何帮助都会很好。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-10-20 18:03:19

我想这就是你想要的

代码语言:javascript
复制
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
EN

Stack Overflow用户

发布于 2016-10-20 18:22:07

我正在努力将insert查询写入备份数据库。我将位置和实体表写入此数据库。问题是实体通过place.id列链接到place。我在place表中添加了一个列place.original_id来存储它原来的'id‘。所以,现在我进入了新的数据库,它的id列改变了,但是我保存了原始的id,所以我仍然可以将实体表链接到它。

从一开始就不存在这个问题就更简单了。

更好的解决方案是转储和加载完整的placesentities,完整地包含主键和外键,而不是事后尝试修复。甲骨文的导出或者像ora2pg这样的实用程序应该能够做到这一点。

抱歉,我不能再多说了。我了解波斯特不是甲骨文。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40160863

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档