我使用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 :(得分:0)
insert into p2 (fk, foo, bar)
select prod1.id, @foo, @bar
from prod1
where @foo is not null or @bar is not null