PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

SELECT dans une table, INSERT dans deux autres tables en fonction de la condition

Vous n'avez pas besoin d'un curseur pour cela, vous n'avez pas besoin de plpgsql, vous n'avez même pas besoin d'un CTE de modification des données ce qui vous permettrait de le faire dans une seule instruction SQL.

Exécutez simplement deux INSERT déclarations . Mettez-les dans une transaction si vous voulez vous assurer que tout ou rien est appliqué :

BEGIN;

INSERT INTO B (col1, col2)
SELECT col1, col2
FROM   A
WHERE  col_cond = 'something';

INSERT INTO C (col1, col2)
SELECT col1, col2
FROM   A
WHERE  col_cond IS DISTINCT FROM 'something';

COMMIT;