Je hebt hiervoor geen cursor nodig, je hebt geen plpgsql nodig, je hebt zelfs geen gegevensmodificerende CTE waarmee u dat in een enkele SQL-instructie zou kunnen doen.
Voer gewoon twee gewone INSERT
uit
uitspraken . Zet ze in een transactie als u er zeker van wilt zijn dat alles of niets wordt toegepast:
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;