Je sais que cette question est oooolllllld et que ma solution est sans doute trop complexe, mais c'est mon type de solution préféré !
Quoi qu'il en soit, j'ai dû faire la même chose et je l'ai fait fonctionner comme ceci :
-- 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;
Un de ces jours, je dois vraiment me débrouiller pour écrire un sonnet d'amour à la clause WITH de PostgreSQL...