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;