Postgres:从远程数据库复制特定表,与外键关系相互关联

时间:2015-04-09 08:59:29

标签: postgresql postgresql-9.3 pg-dump

我的一个应用程序有一个Postgres RDS实例。 我需要将3个表从它复制到数据库的类似克隆。

我也看到mytable_id_seq表,现在我知道这些表在postgres术语中称为序列。

当我创建这三个表的转储并恢复它们时,我是否必须对_id_seq序列做任何事情?

我是否还必须恢复它们,以使转储数据像在原始表中一样工作?

2 个答案:

答案 0 :(得分:0)

从转储还原整个数据库时,默认情况下它包含CREATE SEQUENCE语句。这些语句将序列初始化为正确的状态。但是,如果仅使用选定的表进行部分转储,则必须手动设置序列。 假设您的表名称为“clip”,您可以使用此查询检查当前值:

  

从clip_id_seq中选择last_value

如果你想在恢复后更新序列,可以使用这个简单的查询来完成:

  

SELECT SETVAL('clip_id_seq',SELECT MAX(id)FROM clip)

答案 1 :(得分:0)

pg_dump -d database_name -t mg_cnd  -F c > database_backup.sql
pg_restore -U database_user --data-only -d database_name -t mg_cnd -F c <file_location>
  • -d =数据库名称
  • -t =表名
  • -F =格式
    c =普通
  • -U =用户
  • -仅数据=仅传输表数据

pg_dump documentation

pg_restore documentation