首页 > 解决方案 > 如何将 postgres 表从一个数据库复制到另一个使用序列的服务器上的另一个数据库

问题描述

我在 server1 上有一个数据库,在数据库中我有一个表 (table1) 和一个关联的序列 (seq1)。

table1 使用序列生成一个序列ID,它是表中的一个字段。IE

\d table1

                               Table "public.table1"

专栏 | 类型 | 整理 | 可空 | 默认

--------+-------+------------+--------- -+----------------------------

编号 | 整数 | | 不为空 |nextval('seq1'::regclass)

主机名 | 性格变化| | |

位置 | 性格变化| | |

因此,当我添加主机名、位置的新记录时,id 字段会自动填充下一个序列号。

我想将 table1 复制到另一台服务器上的数据库,但我想维护表中的当前序列号。(这些序列号是从另一个表中引用的,因此它们需要保持原样)。将其复制到新数据库后,我将重新创建序列,从 Table1 + 1 中的最高 id 开始。

目前 table1 在新服务器上不存在,所以我想复制架构和数据。

我有点担心如果我只是做一个pg_dump,然后使用psql恢复,我会丢失现有的序列号吗?

谢谢。

标签: postgresql

解决方案


推荐阅读