如何在postgresql中重新插入所有现有字段,但只更改一个字段数据?

如何在postgresql中重新插入所有现有字段,但只更改一个字段数据?,sql,postgresql,Sql,Postgresql,我在一个表中有一堆数据,例如,假设我有一个有四列的表 身份证、姓名、年龄、地址 id保持不变,但所有其他字段都会更改。i、 它看起来像这样 id name age address 1 steve 20 test address 1 1 mark 21 test address 2 现在,我希望有相同的数据集,但只更改id,例如,所有内容都将保持不变,但只有id更改为

我在一个表中有一堆数据,例如,假设我有一个有四列的表

身份证、姓名、年龄、地址

id
保持不变,但所有其他字段都会更改。i、 它看起来像这样

id      name         age        address
1       steve        20         test address 1 
1       mark         21         test address 2 
现在,我希望有相同的数据集,但只更改id,例如,所有内容都将保持不变,但只有id更改为如下所示:

id       name          age        address
1        steve         20         test address 1
1        mark          21         test address 2
2        steve         20         test address 1
2        mark          21         test address 2
但我不想一次插入一个字段,因为我有100个字段,这样做会浪费很多时间

所以我的问题是,我怎样才能在博士后尽可能容易地做到这一点

我忘了提到其他字段不是默认设置的,我想从一个特定的字段id复制数据,所以通常应该是这样的。首先,我想从一个特定的id中获取所有字段,然后再次插入这些字段,但现在使用新的id,例如2

insert into table(id,name,age,address) select 2,name,age,address from table
现在为插入操作创建一个函数:

create or replace function ins_list(_updateID int ,_getID int) returns void as
$$
-- _updateID : - the new ID that you want to insert(ex. 2)
-- _getID : - the ID that you need to search to get values from name,age,address (ex.1)
insert into list (id,name,age,address) select _updateID,name,age,address from list where id  = _getID
$$
language sql  
要插入,只需像这样调用

select ins_list(2,1);

“插入到表中,从表中选择id+1、姓名、年龄、地址”?(当你说100个字段时,你是指100个行还是100个列?)。首先,我想从一个特定的id中获取所有字段,然后再次插入这些字段,但现在使用新的id,例如2。非常感谢,这正是我所需要的。
select ins_list(2,1);