PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

SELECT aus einer Tabelle, INSERT in zwei andere Tabellen basierend auf der Bedingung

Sie brauchen dafür keinen Cursor, Sie brauchen kein plpgsql, Sie brauchen nicht einmal einen Datenmodifizierender CTE was es Ihnen ermöglichen würde, dies in einer einzigen SQL-Anweisung zu tun.

Führen Sie einfach zwei einfache INSERT aus Aussagen . Fügen Sie sie in eine Transaktion ein, wenn Sie sicherstellen möchten, dass alles oder nichts angewendet wird:

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;