我想在Postgres默认值中的字段中插入值,这些值根据其他字段递增?
在我的表中,我已经有了name
字段,我想插入字段'index'的值,如下所示:
Name | Value
aaaa |MD_1 |
aaaa |MD_2 |
aaaa |MD_3 |
bbbb |MD_1 |
bbbb |MD_2 |
bbbb |MD_3 |
bbbb |MD_4 |
cccc |MD_1 |
cccc |MD_2 |
答案 0 :(得分:0)
我认为你要说的是你要像上面的例子那样更新值字段。很遗憾,您无法在更新语句中使用row_number over partition by
,但可以在select
中使用它。
你能做的是
创建另一个临时表并在其中填充value
字段。
截断主表
假设你的主表是table1。然后这样做
的 SQLFiddle Demo
强>
CREATE TABLE Table2 (Name varchar(4), val varchar(6));
INSERT INTO TABLE2
SELECT NAME,('MD_'||row_number() over (partition by name order by name)) FROM TABLE1;
truncate table table1;
insert into table1
select name,val from table2;