在postgresql中复制同一个表中的行记录

时间:2016-07-15 05:20:21

标签: postgresql postgresql-9.5

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

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

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

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

欢迎任何新想法。

提前致谢。

1 个答案:

答案 0 :(得分:7)

直接在SELECT中更改列的值,aditional更新是不必要的,就像在下面的示例中一样

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;