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

问题描述 投票:0回答:1

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

触发器在insert语句之后。

postgresql sql-insert
1个回答
3
投票

您可以使用以下内容:

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

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

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

CREATE INDEX ON mytable ((xmin::text::bigint));
© www.soinside.com 2019 - 2024. All rights reserved.