2017-03-01 118 views
2

我只是發現,如果沒有行受到影響,語句觸發器也會執行。 有趣的 - 但無論如何 - 有沒有辦法得到影響行,或至少如果任何行受到影響?Postgres:獲取語句觸發器中受影響的行數

觸發器在insert,statement之後。

謝謝!

+0

哪裏是你的代碼? –

回答

2

您可以使用下列內容:

SELECT count(*) 
FROM mytable 
WHERE xmin::text::bigint = txid_current(); 

將計創建或在相同的事務中觸發更新所有行。當然,如果在同一個事務中對同一個表進行更多的修改,那將不會返回所需的結果。

你甚至可以創建一個索引,以加快該查詢:

CREATE INDEX ON mytable ((xmin::text::bigint)); 
+1

'pg_stat_get_xact_tuples_xxx'功能怎麼樣? – Abelisto

+0

有趣的想法!我不確定這些值是否總是立即更新,但查詢它們肯定比我的技術更便宜。 –

相關問題