postgresql - Postgres : Get numbers of affected rows in statement trigger

标签 postgresql

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

触发器在插入、语句之后。

谢谢!

最佳答案

您可以使用以下内容:

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

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

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

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

关于postgresql - Postgres : Get numbers of affected rows in statement trigger,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42537253/

相关文章:

sql - 在 SQL 中插入缺失值

database - 如何在 Windows 中将用户添加到 PostgreSQL?

Python psycopg2 没有插入到 postgresql 表中

Java 枚举、JPA 和 Postgres 枚举 - 如何让它们一起工作?

postgresql - bash脚本在docker容器中有一个postgres数据库

Openshift 中的 PostgreSQL 不会执行入口点并且无法启动数据库

python - 如何为 geoalchemy2 类型使用 SQLAlchemy @compiles 装饰器

php - 如何构建包含多个查询的摘要页面

PHP Postgresql 通过浏览器向数据库添加数据

sql - Postgres/SQL 中 least() 函数中的 NULL 处理