2015-10-16 130 views
1

參考另一場我有以下INSERT語句:INSERT INTO:在VALUES語句

33 INSERT INTO 
34   Exhibitions (
35     ex_eName, 
36     ex_eDescription, 
37     ex_eDateStart, 
38     ex_eDateEnd) 
39 VALUES 
40   ('exhibition name', 
41   'exhibition description', 
42   (SELECT 
43     dateStart 
44   FROM 
        ... 
62  ), 
63   '2017-10-10'); -- this date is a placeholder 
64 

我將記錄插入展覽有4個領域:展覽名稱,展覽說明,開始日期,結束日期。我正在使用一些子查詢來查找開始日期(我拿出子查詢,因爲它與問題無關)。

結束日期應該是開始日期後5個月。當我定義結束日期字段時,我無法弄清楚如何引用開始日期字段。這裏是我想要做的一個例子:

33 INSERT INTO 
34   Exhibitions (
35     ex_eName, 
36     ex_eDescription, 
37     ex_eDateStart, 
38     ex_eDateEnd) 
39 VALUES 
40   ('exhibition name', 
41   'exhibition description', 
42   (SELECT 
43     dateStart 
44   FROM 
        ... 
62  ), 
63   dateStart + interval '5 months'); 
64 

這是可能的PostgreSQL?

+0

什麼類型是你的'dateStart'明杆?整數?約會時間? – bish

回答

0

使用insert . . . select

INSERT INTO Exhibitions (ex_eName, ex_eDescription, ex_eDateStart, ex_eDateEnd) 
    SELECT 'exhibition name', 'exhibition description', datestart, 
      dateStart + interval '5 months' 
    FROM . . .; 
+0

哇,我不敢相信我沒有想到...非常感謝!它非常完美! –