2014-08-29 84 views
0

我有一個表稱爲Records具有數據作爲以下各項如何在同一個表中的Postgres插入相同的數據(或複製)爲不同的記錄

Section_one | section_two | values  | cDate 

name_Fit | hellp0  | present  | 2014-08-23 
name_Fit | onew  | parcel  | 2014-08-21 
name_Fit | twow  | new thing | 2014-07-04 

現在我想插入一個名爲新數據name_Fit_one與第section_one列相對應,其應該具有與其相對應的類似數據(列section_twovalues)。

我試圖寫的SQL來做到這一點,但我得到的postgres錯誤。任何人都可以請糾正我我做錯了什麼?

Insert into records(section_one,section_two,values) Values ('name_Fit_one', select section_two,values from records where section_one='name_Fit'); 

預期結果

Section_one | section_two | values  | cDate 

name_Fit | hellp0  | present  | 2014-08-23 
name_Fit | onew  | parcel  | 2014-08-21 
name_Fit | twow  | new thing | 2014-07-04 
name_Fit_one| hellp0  | present  | 2014-08-29 
name_Fit_one| onew  | parcel  | 2014-08-29 
name_Fit_one| twow  | new thing | 2014-08-29 

需要編寫一個將記錄的內容複製到另一個記錄單查詢?

下面是它 -

http://sqlfiddle.com/#!2/9de58/1

+0

你的標籤說postgresql,但你的sqlfiddle是mysql。你真的在用什麼數據庫?你的數據也顯示一列「值」,但你的小提琴顯示「價值」,這是正確的?也是cdate時間戳字段(如在你的小提琴)或日期字段(如上面的數據)? – 2014-08-29 21:59:54

回答

1

如果你使用PostgreSQL,你應該能夠使用:

Insert into records 
    select 'name_Fit_one', section_two, values, '2014-08-29' 
    from records 
    where section_one = 'name_Fit'; 

小提琴:http://sqlfiddle.com/#!15/fbbed/1/0

注意,我改名一些你列的,因爲它是不清楚你上面的例子或你的sqlfiddle包含你的實際數據和列名(它們不同)。

如果您希望它是運行插入的日期,那麼可以用CURRENT_DATE替換文字'2014-08-29'。

1
Insert into records (section_one,section_two, "values") 
select 'name_Fit_one', section_two, "values" 
from records 
where section_one='name_Fit'; 

注意values是一個保留字,因此需要加引號的SQL小提琴。

相關問題