1

我曾经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表..

4

1 回答 1

1

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

SELECT setval('smtable_a_seq', max(a)) FROM table;
于 2016-02-09T19:37:09.877 回答