2015-10-16 161 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

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