2016-06-13 24 views
0

我想將值插入Postgres默認值中根據其他字段遞增的字段中?將值插入根據fiels值遞增的字段

在我的表我已經實地name,我想插入域「索引」的值,這樣的:

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 | 
+2

這難道不是與您的最後一個問題? http://stackoverflow.com/questions/37745036/running-a-loop-into-sql-query –

+0

@Hchliyah:你的意思是說你的表現在已經擁有'name'和'value'爲null,並且你想要更新它們,就像你在問題中提到的那樣? – Utsav

回答

0

我想你說的是什麼,你要更新的價值像上面的例子一樣。不幸的是,您不能在更新聲明中使用row_number over partition by,但您可以在select中使用它。

你可以做的是

  1. 創建另一個臨時表,並在其中填充value場。

  2. 截斷你的主表,從臨時表

  3. 將數據複製到你的主 表。

說你的主表是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; 
+0

謝謝@Utsav它非常有幫助! – Hchliyah