Postgresql 如果数据不为空,则将数据插入Postgres表

Postgresql 如果数据不为空,则将数据插入Postgres表,postgresql,dapper,Postgresql,Dapper,我正在使用Postgres的公共表表达式,如果数据中的值不为null,我会(如果可能)将数据插入表中: 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,否则将创建一

我正在使用Postgres的公共表表达式,如果数据中的值不为null,我会(如果可能)将数据插入表中:

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,否则将创建一个空白引用?或者,我是否必须手动检查并根据需要通过代码插入

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