草原上的野狼

啸苍天,没日月,孤单影只; 忍地寒,耐绝境,经熔炼,将成大业!

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 :: 管理 ::

 1 -- Function: "RaiseItemChangedEvent"()
 2 
 3 -- DROP FUNCTION "RaiseItemChangedEvent"();
 4 
 5 CREATE OR REPLACE FUNCTION "RaiseItemChangedEvent"()
 6   RETURNS "trigger" AS
 7 $BODY$DECLARE
 8     itemType   SMALLINT;
 9     actionType SMALLINT;
10 --  itemId VARCHAR;
11 BEGIN
12   itemType := TG_ARGV[0];
13   IF tg_op = 'INSERT' THEN
14 --    itemId = new."Id";
15     actionType := 1;
16     INSERT INTO m_events(
17           "Id""ItemId""ItemType""ActionType","CreateDate")
18     VALUES (nextval('seq_eventid'), new."Id", itemType, actionType,'now');
19     RETURN new;
20   ELSIF tg_op = 'UPDATE' THEN
21     actionType := 2;
22     INSERT INTO m_events(
23           "Id""ItemId""ItemType""ActionType","CreateDate")
24     VALUES (nextval('seq_eventid'), new."Id", itemType, actionType,'now');
25     RETURN new;
26   ELSIF tg_op = 'DELETE' THEN     
27     actionType := 3;
28     INSERT INTO m_events(
29           "Id""ItemId""ItemType""ActionType","CreateDate")
30     VALUES (nextval('seq_eventid'), old."Id", itemType, actionType,'now');
31     RETURN new;
32   END IF;  
33 END;$BODY$
34   LANGUAGE 'plpgsql' VOLATILE;
35 ALTER FUNCTION "RaiseItemChangedEvent"() OWNER TO testuser;


posted on 2007-11-29 18:10  血狼  阅读(600)  评论(0)    收藏  举报