调用'insert'时PostgreSql触发器不起作用

时间:2018-06-15 01:02:47

标签: postgresql database-trigger

以下代码是我创建触发器功能以更改“pass”列的代码。

create or replace function change_pass()
returns trigger as
$$
begin
 NEW.pass := 'XXXXXXXXX';
 return NEW;
end
$$
language plpgsql;
create trigger change_pass
AFTER insert or update on "D_ACCOUNT"
for each row execute procedure change_pass();

当我调用insert时,我没有看到我的数据有任何变化。 谁能向我解释我哪里错了?

1 个答案:

答案 0 :(得分:1)

您需要BEFORE触发器来更改NEW记录中的值:

create trigger change_pass
  BEFORE insert or update on "D_ACCOUNT"
for each row execute procedure change_pass();