我有一个名为Records
的表,其数据如下 -
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
wrt的新数据,该列应该具有与之对应的类似数据(wrt列section_two
和values
)。
我试着编写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
需要编写将一条记录的内容复制到另一条记录的单一查询吗?
下面是sql小提琴 -
答案 0 :(得分:1)
Insert into records (section_one,section_two, "values")
select 'name_Fit_one', section_two, "values"
from records
where section_one='name_Fit';
请注意,values
是保留字,因此需要引用。
答案 1 :(得分: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是否包含您的实际数据和列名称(它们不同)。
如果您希望将文字“2014-08-29”作为运行插入的日期,则可以将文字“2014-08-29”替换为CURRENT_DATE。