postgres - 定义trigger 和 function / procedure
访问量: 394
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