如何在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);