【问题标题】:Insert into table after pg dumppg转储后插入表中
【发布时间】:2016-02-10 03:37:09
【问题描述】:

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

在这个table (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..

【问题讨论】:

    标签: postgresql stored-procedures psql node-postgres


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-07-19
      • 2010-12-19
      • 2022-12-05
      • 2019-11-12
      • 1970-01-01
      • 2023-03-29
      • 2012-06-06
      相关资源
      最近更新 更多