2017-04-02 1 views
0

J'utilise Common Table Expressions de Postgres, et je - si possible - pour insérer des données dans une table si les valeurs dans les données ne sont pas nulles:Insertion de données dans une table Postgres si les données sont non nulle

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 sont égales à null, est-il possible pour postgres d'ignorer l'insertion de données dans p2 sinon cela va créer une référence vide? Ou dois-je vérifier et insérer manuellement au besoin via le code?

Répondre

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