在 pg 转储后插入 table

Insert into table after pg dump

我使用 pg_dump 在新数据库中填充 table。之后,我希望能够使用序列键的 default autoincrementer 将行插入到 table 中。这是我在 table:

中的内容

在这个table (smtable)中,a是关键(设置为serial)。

--data filled using pg dump
a  |  b
1     2
2     5

现在当我执行以下语句时:

INSERT INTO smtable VALUES(DEFAULT, 6)
        RETURNING a INTO id;

我收到以下错误:

[error: duplicate key value violates unique constraint "a_pkey"]
detail: 'Key (a)=(1) already exists.

如何让这条语句插入 table 的 next_key..

您可以将序列号设置为您当前id列的最大编号来解决问题。由于序列列与序列相关联,只需使用以下设置即可:

SELECT setval('smtable_a_seq', max(a)) FROM table;