So che questa domanda è oooolllllld e la mia soluzione è probabilmente eccessivamente complessa, ma questo è il mio tipo di soluzione preferito!
Ad ogni modo, ho dovuto fare la stessa cosa e farlo funzionare in questo modo:
-- Get count from INSERT
WITH rows AS (
INSERT INTO distributors
(did, dname)
VALUES
(DEFAULT, 'XYZ Widgets'),
(DEFAULT, 'ABC Widgets')
RETURNING 1
)
SELECT count(*) FROM rows;
-- Get count from UPDATE
WITH rows AS (
UPDATE distributors
SET dname = 'JKL Widgets'
WHERE did <= 10
RETURNING 1
)
SELECT count(*) FROM rows;
Uno di questi giorni devo davvero riuscire a scrivere un sonetto d'amore per la clausola WITH di PostgreSQL...