我使用 pg_dump
来填充新数据库中的表。之后,我希望能够使用序列键的 default autoincrementer
将行插入到表中。这是我在表中的内容:
在这个表(smtable)
中,a
是key(设置为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
..
最佳答案
您可以将 serial 设置为当前 id 列的最大编号来解决问题。由于序列列与序列相关联,只需使用以下设置即可:
SELECT setval('smtable_a_seq', max(a)) FROM table;
关于postgresql - 在 pg 转储后插入到表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35298058/