首页 > 解决方案 > 为拆分表创建序列主键

问题描述

我有具有相同架构的存档表和生产表。生产有新数据,存档有旧数据。我想将id它们添加为串行初级密钥。在这两个表中我都有数据。我的想法是在存档表中创建 id。

alter table people add column id serial primary key;

然后在我的生产表中做同样的事情。生产是存档表的延续,所以primery key也应该是它的延续。所以我用:

alter sequence people_id_seq restart with 40;

我唯一的问题是这个推荐不会更新索引。仅为新插入设置起始值。所以我应该先跑

UPDATE people set id = id + 40;

以及具有所有行数值的设置序列(在存档和生产中)。

alter sequence people_id_seq restart with (40 + select count(*) from people);

我有几个表用于这个过程(存档和生产中的行数不同),所以我正在寻找最自动化的解决方案。

标签: postgresqlalterpostgresql-11

解决方案


推荐阅读