Arrays 在postgresql中插入数组作为新行,不带循环

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

我有一个取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)

如果您收到满意的答复,请接受。请不要将已回答的问题视为未回答。对不起,我的错,刚刚回答了。谢谢!