2017-04-02 67 views
0

我使用的Postgres的公用表表達式,並會 - 如果可能的話 - 將數據插入到一個表,如果在數據中的值不爲空:將數據插入到Postgres的表,如果數據不是空

WITH prod1 AS (
    INSERT INTO p1 ... RETURNING id), 
    prod2 AS (
    INSERT INTO p2 (fk,foo,bar) VALUES (prod1.id,@Foo,@Bar) 
    RETURNING id) 

如果@Foo和@Bar的值等於null,postgres是否可以跳過將數據插入到p2中,否則它會創建一個空白引用?或者,我是否需要通過代碼手動檢查並插入?

回答

0
insert into p2 (fk, foo, bar) 
select prod1.id, @foo, @bar 
from prod1 
where @foo is not null or @bar is not null