在 postgresql 中复制相同 table 中的行记录

Duplicate a row record in same table in postgresql

我想在同一个 table 中复制一条行记录,但要对某些列值进行修改。我知道我可以使用以下脚本复制行记录。

INSERT INTO table_name( 
column_name1, column_name2, column_name3 ....
)
SELECT column_name1, column_name2, column_name3 ....
FROM table_name WHERE id=1;

但它会复制整行。为了修改,我还需要添加更新脚本。

所以我的问题是,有没有更简单的方法来处理我的情况。 由于我工作的table大约有40列,所以我认为这种方式不可行。

欢迎任何新想法。

提前致谢。

直接在SELECT中更改列的值,不需要额外的更新,就像下面的例子

INSERT INTO table_name( 
column_name1, column_name2, column_name3 ....
)
SELECT column_name1, 
       'New string value of column 2', 
       column_name3,
       ......
       ......
       1234 as new_val_of_col_25,
       column_name26,
       ......
FROM table_name WHERE id=1;