Postgresql 在pg转储后插入到表中

Postgresql 在pg转储后插入到表中,postgresql,stored-procedures,psql,node-postgres,Postgresql,Stored Procedures,Psql,Node Postgres,我使用pg_dump在新数据库中填充一个表。在此之后,我希望能够使用串行键的默认自动递增器将行插入表中。以下是我在表中的内容: 在此表(smtable)中,a是键(设置为serial) 现在,当我做以下陈述时: INSERT INTO smtable VALUES(DEFAULT, 6) RETURNING a INTO id; 我得到以下错误: [error: duplicate key value violates unique constraint "a_pkey"] d

我使用
pg_dump
在新数据库中填充一个表。在此之后,我希望能够使用串行键的
默认自动递增器
将行插入表中。以下是我在表中的内容:

在此
表(smtable)
中,
a
是键(设置为
serial

现在,当我做以下陈述时:

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.

如何让此语句插入表的下一个键。

您可以将序列号设置为当前id列的最大值以解决此问题。由于序列列与序列相关联,因此只需使用以下方法进行设置:

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