例如,
myelems 是我的表
create table myelems (id int,element text)
如果我有一个数组
ARRAY['A','B','C']
然后如何将上述数组中的值插入到我的表 myelems 中?
即,
id|element
---+-------
1 |A
2 |B
3 |C
答案 0 :(得分:0)
试试这个
insert into myelems select row_number() OVER () AS rn,* from
(select unnest(Array['A','B','C'])) as t
答案 1 :(得分:0)
假设默认情况下ID是从序列生成的,您可以使用:
INSERT INTO myelms(myelms)
SELECT UNNEST(ARRAY['A','B','C'])
但是,如果您没有序列并且需要指定ID,则可以使用两个不需要来插入数据。
INSERT INTO myelms(id,myelms)
SELECT UNNEST(ARRAY[1,2,3]),UNNEST(ARRAY['A','B','C'])
使用第二个选项要求你在两个选项中都有相同数量的元素,否则你将得到两者的笛卡尔积,这将产生你不想要的数据。当然,您需要确保ID已经存在。
ID通常应该从序列生成,因为必须创建自己的ID可能会导致问题和重复。由于元素旁边没有其他列,我将假设ID是您的主键,并且所有键都必须是唯一的。