PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

SELECT da una tabella, INSERT in altre due tabelle in base alla condizione

Non hai bisogno di un cursore per questo, non hai bisogno di plpgsql, non hai nemmeno bisogno di un CTE per la modifica dei dati che ti permetterebbe di farlo in una singola istruzione SQL.

Basta eseguire due semplici INSERT dichiarazioni . Inseriscili in una transazione se vuoi assicurarti che tutto o niente sia applicato:

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;