pg转储后插入表格

时间:2016-02-09 17:12:54

标签: postgresql stored-procedures psql node-postgres

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

在此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.

如何使用此语句插入表格的next_key ..

1 个答案:

答案 0 :(得分:1)

您可以将序列设置为当前id列的最大数量来解决问题。由于串行列与序列相关联,因此只需使用以下命令进行设置:

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