Postgres:在语句触发器中获取受影响的行数

时间:2017-03-01 16:40:17

标签: postgresql

我发现如果没有行受影响,也会执行语句触发器。 有意思 - 但无论如何 - 有没有办法让行没有受到影响,或者至少是否有任何行受到影响?

触发器在insert,statement之后。

谢谢!

1 个答案:

答案 0 :(得分:3)

您可以使用以下内容:

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

这将计算在与触发器相同的事务中创建或更新的所有行。当然,如果在同一个事务中对同一个表进行了更多修改,那么这将不会返回所需的结果。

您甚至可以创建索引来加速查询:

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