J'utilise les expressions de table communes de Postgres et, si possible, insérer des données dans une table si les valeurs des données ne sont pas nulles:
WITH prod1 AS (
INSERT INTO p1 ... RETURNING id),
prod2 AS (
INSERT INTO p2 (fk,foo,bar) VALUES (prod1.id,@Foo,@Bar)
RETURNING id)
Si les valeurs @Foo et @Bar correspondent à null, est-il possible que postgres ignore l'insertion de données dans p2, sinon cela créera une référence vide? Ou est-ce que je dois vérifier manuellement et insérer comme requis via le code?
insert into p2 (fk, foo, bar)
select prod1.id, @foo, @bar
from prod1
where @foo is not null or @bar is not null