创建触发器

最近更新时间: 2024-10-17 17:10:00

使用命令

CREATE TRIGGER… ON … EXECUTE PROCEDURE … 创建触发器

触发事件可以是INSERT,UPDATE [ OF column_name [, ... ] ],DELETE或者TRUNCATE

示例:触发事件,插入记录时,如果f2字段值小于0时,则将f2的值修改成0

创建表

create table t_trigger(f1 int,f2 int);

创建函数

CREATE OR REPLACE FUNCTION t_trigger_insert_trigger_func () RETURNS trigger AS
$body$
BEGIN
    if NEW.f2
       NEW.f2=0;
   end if;    
   RETURN NEW;
END;
$body$
LANGUAGE plpgsql;

创建触发器

CREATE TRIGGER t_trigger_insert_trigger BEFORE INSERT ON t_trigger FOR EACH ROW EXECUTE PROCEDURE t_trigger_insert_trigger_func();

插入数据

insert into t_trigger values(1,-1);

查询数据

select * from t_trigger;

⚠️查询结果f2为0,插入数据事件触发了触发器,直接将f2的值修改为0