触发,插入前插入一个值(PostgreSQL)

时间:2018-05-12 00:37:43

标签: postgresql function triggers plpgsql

我知道有一个initcap()函数,它将对'string'执行转换。但我想知道如何在将列名中的值插入到我的表客户端之前执行执行此函数的触发器。换句话说,我的函数'func()'是如何声明的。

CREATE TRIGGER trigg
BEFORE INSERT
ON client
FOR EACH ROW
EXECUTE PROCEDURE func()

CREATE FUNCTION func()
returns trigger as 
$BODY$

begin
**???**
end;
$BODY$ language plpgsql;

1 个答案:

答案 0 :(得分:0)

您可以通过OLD伪记录访问触发触发的更改之前的记录,也可以通过触发器功能中的NEW伪记录访问更改后的记录。你也可以改变后者。

所以要更改客户端名称

NEW.name := initcap(NEW.name);
RETURN NEW;
触发器功能体中的

有关详细信息,请参阅42.9. Trigger Procedures