批量插入PostgreSQL中的多个列

时间:2011-11-21 06:01:42

标签: sql postgresql

我有一个批量插入查询

insert into table1(shift) select value from table2 where transid='shiftid'

此查询将table2中的所有移位值插入到table1移位列中。

但是如果我想在table1中的多个列中插入记录,但我的选择查询将只返回一列,例如:

select value from table1 where transid in ('shiftid','gradeid','currencyid')

它将返回包含所有值的一列。但我想插入:

insert into table1(shift,grade,currency) ...........

任何人都可以为我填充....我希望你理解我的要求。

1 个答案:

答案 0 :(得分:1)

我不知道你的表是什么样的,但你需要的是确保INSERT和SELECT中的列数匹配,并且它们具有兼容的类型。所以像这样:

insert into table1 (shift, grade, currency)
select shift_id, grade_id, currency_id
from table2
where transid in ('shiftid', 'gradeid', 'currencyid')

SELECT中的列取决于table2的样子。