Spike Asked: 2019-04-13 02:50:05 +0800 CST2019-04-13 02:50:05 +0800 CST 2019-04-13 02:50:05 +0800 CST 在 postgres 中备份和恢复期间如何保留序列的曲线 772 如果我备份和恢复一个巨大的数据库(其中有大量的表),它会在没有任何问题的情况下运行,而不是关于序列列的重复键约束的异常上升。 在获取 pg_dump(完整模式/数据库)时,它如何获取序列的单个值并在我们还原时用表的序列列的最新值更改该值? postgresql-9.6 sequence 1 个回答 Voted Best Answer a_horse_with_no_name 2019-04-13T03:12:43+08:002019-04-13T03:12:43+08:00 如果您查看生成的 SQL 脚本,pg_dump您会看到它setval()为每个导出的序列生成一个调用。因此,如果您有一个序列test_seq并且它生成的最后一个值是 42,您将在 SQL 脚本中看到这一行: SELECT pg_catalog.setval('public.test_seq', 42, true); 这使得序列返回 43,下一次nextval()被调用。 有关该功能的详细信息,请参阅手册setval()。
如果您查看生成的 SQL 脚本,
pg_dump
您会看到它setval()
为每个导出的序列生成一个调用。因此,如果您有一个序列test_seq
并且它生成的最后一个值是 42,您将在 SQL 脚本中看到这一行:这使得序列返回 43,下一次
nextval()
被调用。有关该功能的详细信息,请参阅手册
setval()
。