惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Attack and Defense Labs
Attack and Defense Labs
The GitHub Blog
The GitHub Blog
C
Check Point Blog
博客园_首页
MongoDB | Blog
MongoDB | Blog
N
Netflix TechBlog - Medium
F
Full Disclosure
Microsoft Security Blog
Microsoft Security Blog
爱范儿
爱范儿
Recent Announcements
Recent Announcements
阮一峰的网络日志
阮一峰的网络日志
G
GRAHAM CLULEY
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
T
Threat Research - Cisco Blogs
C
Cybersecurity and Infrastructure Security Agency CISA
V
Vulnerabilities – Threatpost
K
Kaspersky official blog
博客园 - 司徒正美
S
Schneier on Security
T
The Exploit Database - CXSecurity.com
Project Zero
Project Zero
云风的 BLOG
云风的 BLOG
Cisco Talos Blog
Cisco Talos Blog
Know Your Adversary
Know Your Adversary
雷峰网
雷峰网
V
V2EX - 技术
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Spread Privacy
Spread Privacy
罗磊的独立博客
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
S
Security Affairs
SecWiki News
SecWiki News
Schneier on Security
Schneier on Security
O
OpenAI News
Jina AI
Jina AI
PCI Perspectives
PCI Perspectives
Cyberwarzone
Cyberwarzone
Y
Y Combinator Blog
Apple Machine Learning Research
Apple Machine Learning Research
B
Blog RSS Feed
I
InfoQ
D
Docker
P
Palo Alto Networks Blog
Recorded Future
Recorded Future
M
MIT News - Artificial intelligence
博客园 - Franky
B
Blog
Scott Helme
Scott Helme
博客园 - 叶小钗
D
DataBreaches.Net

博客园 - 血狼

切换ThinkPad Fn键 window.event.keycode值大全 通用分页存储过程 Oracle中将密码有效期由默认的180天修改成“无限制” C#中动态编译某C#文件 C#程序中执行script - 血狼 .Net Reactor 加密的简单例子 MSBuild的相关操作 程序中执行cmd.exe 使用c#捕获Windows的关机事件 北京嘉纳博科技有限公司 Windows Service 初始化代码中追加断点问题 C#定时执行某个程序 .Net中关于多个FrameWork的问题 Chilkat 收、送信 合并文件 设置和获取注册表数据 DotNet多个程序集合并工具 PostGres 全文检索
PostGres 中包含触发器的方法
血狼 · 2007-11-29 · via 博客园 - 血狼

 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;