在 pg 转储后插入 table
Insert into table after pg dump
我使用 pg_dump
在新数据库中填充 table。之后,我希望能够使用序列键的 default autoincrementer
将行插入到 table 中。这是我在 table:
中的内容
在这个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.
如何让这条语句插入 table 的 next_key
..
您可以将序列号设置为您当前id列的最大编号来解决问题。由于序列列与序列相关联,只需使用以下设置即可:
SELECT setval('smtable_a_seq', max(a)) FROM table;
我使用 pg_dump
在新数据库中填充 table。之后,我希望能够使用序列键的 default autoincrementer
将行插入到 table 中。这是我在 table:
在这个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.
如何让这条语句插入 table 的 next_key
..
您可以将序列号设置为您当前id列的最大编号来解决问题。由于序列列与序列相关联,只需使用以下设置即可:
SELECT setval('smtable_a_seq', max(a)) FROM table;