在 postgresql 中增加列值

Posted

技术标签:

【中文标题】在 postgresql 中增加列值【英文标题】:Increment column value in postgresql 【发布时间】:2020-04-02 20:35:16 【问题描述】:

test_id 的数据类型是 int(4) 我正在尝试将 test_id 的值增加 1。

下面是表格

test_id   name   location

 245      Frank    CA
 245      Roy      MO
 245      Tom      KS
 245      Chris    KS
 245      Harry    MO

预期输出

  test_id   name   location

   245      Frank    CA
   246      Roy      MO
   247      Tom      KS
   248      Chris    KS
   249      Harry    MO

【问题讨论】:

请告诉我们您究竟是如何“尝试”的。 不可能,因为顺序是随机的 【参考方案1】:

假设其他值唯一地定义每一行,您可以使用row_number()join

update t
    set test_id = test_id + seqnum
    from (select t.*, row_number() over () - 1 as seqnum
          from t
         ) tt
    where tt.name = t.name and tt.location = t.location;

您可能需要row_number()order by 以获取具有特定顺序的结果。

【讨论】:

以上是关于在 postgresql 中增加列值的主要内容,如果未能解决你的问题,请参考以下文章

在 PostgreSQL 函数中,是不是可以检查列值是不是与给定参数值匹配?

PostgreSQL,删除具有重新编号列值的行

在删除触发postgreSQL之前检查列值

通过 postgresql 中的其他列值更新列值

根据某些条件从多个表中读取列值 - postgreSQL

使用列值 postgresql 创建间隔