【问题标题】:Retrieve updated rows in AFTER UPDATE trigger Postgresql在 AFTER UPDATE 触发器 Postgresql 中检索更新的行
【发布时间】:2015-08-30 20:11:38
【问题描述】:

我正在 postgresql 中编写一个 AFTER UPDATE 触发器。

实际上我需要在 STATEMENT LEVEL 触发器中更新后至少获得一行,但那里没有 OLD 或 NEW 变量。

在 FOR EACH ROW 触发器中,我没有找到一种 batch_last 参数。 但是为每一行做我的程序很昂贵。

我该怎么做?

【问题讨论】:

  • 请提供正确的信息:您的 Postgres 版本,至少最少的表定义、触发器函数和您尝试过的触发器(即使它不起作用)。

标签: postgresql triggers plpgsql


【解决方案1】:

您可以创建一个临时表(使其仅在会话中可见)。在行级触发器中,您将行插入到临时表中,在语句级触发器中,您从临时表中选择(并删除)。

【讨论】:

  • 听起来不错,可惜psql没有这样的原生功能。我应该将 DDL 语句的权限授予用户。
  • 您可以在触发器中直接create table if not exists,这样用户就不需要DDL权限了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-02
  • 2023-03-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多