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;