PL/pgsl做的关于触发器的一个小例子

目的是做一个数量统计,也就是在一张表里面插入数据,另一表里面查询正插入的数据在这张表里面是否有记录,如果没有的话,就增加进去,如果有的话就在他的记数器上面加上1,代码实现如下。

create table test01(
userid integer,
valuenum integer
);

create table test02(
userid integer,
valuenum integer,
username char(20)
);

create OR REPLACE function checkuser() returns trigger as $test01_stamp$
	BEGIN
		IF not EXISTS(SELECT * FROM test01 WHERE userid = new.userid)then
			insert into test01 values(new.userid,1);
		else
			update test01 set valuenum = valuenum+1 where userid = new.userid;
		end if;
		return null;
	END;
$test01_stamp$ language 'plpgsql';

CREATE TRIGGER checkuser
BEFORE INSERT ON test02
    FOR EACH ROW EXECUTE PROCEDURE checkuser();
 

 

你可能感兴趣的:(触发器)