Arrays 在postgresql中插入数组作为新行,不带循环
我有一个取3个值的函数:Arrays 在postgresql中插入数组作为新行,不带循环,arrays,postgresql,Arrays,Postgresql,我有一个取3个值的函数: partitionId varchar(48)='tenant'; jobId varchar(40)='job1'; taskIds varchar[] := '{job1.1, job1.5, job1.3}'; 我希望在表格中插入以下内容: tenant job1 job1.1 2020-10-09 11:38:03 tenant job1 job1.5 2020-10-09 11:38:03 tenant job1 job1.3
partitionId varchar(48)='tenant';
jobId varchar(40)='job1';
taskIds varchar[] := '{job1.1, job1.5, job1.3}';
我希望在表格中插入以下内容:
tenant job1 job1.1 2020-10-09 11:38:03
tenant job1 job1.5 2020-10-09 11:38:03
tenant job1 job1.3 2020-10-09 11:38:03
我知道我可以在数组上使用一个循环,然后逐个插入,但我相信这不是最有效的,所以我尝试一次性插入。
我不确定是否应该使用中间表,或者是否有更直接的解决方案
我试过:
DO
$do$
DECLARE
partitionId varchar(48)='tenant';
jobId varchar(40)='job1';
taskIds varchar[] := '{job1.1, job1.5, job1.3}';
begin
insert into completed_subtask_report values (partitionId, jobId, taskIds, current_timestamp );
END
$do$
但这会将数组插入为:
tenant job1 {job1.1,job1.5,job1.3} 2020-10-09 12:44:09
有人知道怎么做吗?使用unnest:
insert into completed_subtask_report ( ... column names go here ...)
select 'tenant', 'job1', x.task, current_timestamp
from unnest('{job1.1, job1.5, job1.3}') as x(task)
如果您收到满意的答复,请接受。请不要将已回答的问题视为未回答。对不起,我的错,刚刚回答了。谢谢!