2013-12-17 72 views
1

我必须一次将3个表格中的数据插入到PostgreSQL数据库中。用3个表格将数据一次插入Postgresql数据库

我必须直接插入数据到第一个和第二个表中。

但我接收数据作为数组并插入到第三个表中的第三个表作为相同。

数据作为数组插入到PostgreSQL中是否可用?

如果有可能我怎样才能插入一些正确的我 我怎样才能做到与Wso2 DSS 3.0.1相同的机制。

我的查询是

with first_insert as (insert into sample(name,age) 
        values(?,?) 
        RETURNING id 
), 
second_insert as (insert into sample1(empid,desig) 
       values((select id from first_insert),?) 
       RETURNING userid 
) 

insert into sample2(offid,details) 
      values((select userid from second_insert),?) 

回答

1

不知道我理解你的问题完全是,但至少你可以使用insert into ... select

with cte_first_insert as 
(
    insert into sample1(name, age) 
    values('John', 25) 
    returning id 
), cte_second_insert as (
    insert into sample2(empid, desig) 
    select id, 1 from cte_first_insert 
    returning userid 
) 
insert into sample3(offid, details) 
select userid, 'test' 
from cte_second_insert; 

sql fiddle demo

+0

嗨罗马,我编辑我的问题,请看一次,我需要吨将数据直接存储到第三表中。 – Kanchetianeel

+0

你能提供我的sqlfiddle例子所需的结果吗? –

+0

对于第三个表格sample3,我接收的数组类型为{1,2,3},现在我将把这个数组直接存储到数据库中,或者如果可能的话我需要将值拆分并存储到受尊重的列中。如果可能,请指导我如何插入。 – Kanchetianeel

相关问题