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

use*_*334 5 postgresql sql-insert

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

触发器在插入语句之后。

Lau*_*lbe 3

您可以使用以下内容:

SELECT count(*)
FROM mytable
WHERE xmin::text::bigint = txid_current();
Run Code Online (Sandbox Code Playgroud)

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

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

CREATE INDEX ON mytable ((xmin::text::bigint));
Run Code Online (Sandbox Code Playgroud)