sql >> Base de Datos >  >> RDS >> PostgreSQL

SELECCIONE de una tabla, INSERTAR en otras dos tablas según la condición

No necesita un cursor para esto, no necesita plpgsql, ni siquiera necesita un CTE de modificación de datos lo que le permitiría hacer eso en una sola instrucción SQL.

Simplemente ejecute dos INSERT declaraciones . Póngalos en una transacción si quiere asegurarse de que se aplique todo o nada:

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;