Tôi biết câu hỏi này là oooolllllld và giải pháp của tôi được cho là quá phức tạp, nhưng đó là loại giải pháp yêu thích của tôi!
Dù sao, tôi cũng phải làm điều tương tự và nó hoạt động như thế này:
-- 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;
Một trong những ngày này, tôi thực sự phải xoay quanh việc viết một sonnet tình yêu cho mệnh đề WITH của PostgreSQL ...