Jeg ved, at dette spørgsmål er oooolllllld, og min løsning er velsagtens alt for kompleks, men det er min foretrukne løsning!
Jeg var i hvert fald nødt til at gøre det samme og fik det til at virke sådan her:
-- 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;
En af disse dage er jeg virkelig nødt til at komme rundt for at skrive en kærlighedssonnet til PostgreSQL's WITH-klausul ...