2017-03-01 121 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

有趣的想法!我不确定这些值是否总是立即更新,但查询它们肯定比我的技术更便宜。 –

相关问题