PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

SELECT de uma tabela, INSERT em duas outras tabelas com base na condição


Você não precisa de um cursor para isso, não precisa de plpgsql, nem precisa de um CTE de modificação de dados o que permitiria que você fizesse isso em uma única instrução SQL.

Basta executar dois simples INSERT declarações . Coloque-os em uma transação se quiser garantir que tudo ou nada seja aplicado:
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;