Back

postgres - 定义trigger 和 function / procedure

发布时间: 2022-12-27 03:00:00

16年前刚入行的时候,就听说过存储过程。

一直有敬畏之心,所以从没敢涉足。

今天机缘巧合之下碰了一下。感觉这个东西。。。少用为妙,因为太不直观了。

1. 定一个函数,给trigger使用

create function increase_xxx_transactions_count() returns trigger as 
$$begin
    update counts set value = value + 1 where name = 'xxx_transactions';
    return new;
end;$$
language plpgsql volatile;

2. 定义trigger

create trigger after_insert_update_xxx_transactions_count
after insert on xxx_transactions
for each row execute procedure increase_xxx_transactions_count();

3. 直接在psql中执行就可以了,可以发现,只要对应的表 有insert/delete操作, 这个counts表的对应的value 就是增减1

Back