Postgresql添加/删除触发器示例
2017-02-16 19:37
387 查看
-- 定义触发器 CREATE TRIGGER "vss_after_insert_flow_201702" AFTER INSERT ON "public"."vss_passenger_flow_201702" FOR EACH ROW EXECUTE PROCEDURE "vss_after_insert_flow"();
--删除触发器 DROP TRIGGER vss_after_insert_flow_201702 ON vss_passenger_flow_201702 ;
--定义存储过程 -- FUNCTION: public.vss_after_insert_flow() -- DROP FUNCTION public.vss_after_insert_flow(); CREATE FUNCTION public.vss_after_insert_flow() RETURNS trigger LANGUAGE 'plpgsql' COST 100.0 VOLATILE NOT LEAKPROOF AS $BODY$ BEGIN --Routine body goes here... IF EXISTS(SELECT camera_id FROM vss_passenger_hour WHERE camera_id = NEW.i_camera_id and datetime = NEW.start_dt::DATE and EXTRACT(hour FROM time) = EXTRACT(hour FROM NEW.start_dt::TIME)) THEN UPDATE vss_passenger_hour SET passenger_in_count = passenger_in_count + NEW.i_enter_num , passenger_out_count = passenger_out_count + NEW.i_leave_num WHERE camera_id = NEW.i_camera_id and datetime = NEW.start_dt::DATE and EXTRACT(hour FROM time) = EXTRACT(hour FROM NEW.start_dt::TIME); ELSE INSERT INTO vss_passenger_hour(region_id,camera_id,datetime,time,passenger_in_count,passenger_out_count) VALUES (NEW.i_area_id,NEW.i_camera_id,NEW.start_dt,to_timestamp(to_char(NEW.start_dt, 'yyyy-mm-dd HH24')||':00:00', 'yyyy-mm-dd HH24:MI:SS'),NEW.i_enter_num,NEW.i_leave_num); END IF; RETURN NULL; END $BODY$; ALTER FUNCTION public.vss_after_insert_flow() OWNER TO postgres;
相关文章推荐
- 写一个触发器。从tb_control里删除一条记录,自动把该记录添加到另一个表tb_ctrlHistor中
- MOSS添加删除导航结点(SPNavigationNode)代码示例
- JS动态添加删除控件_示例
- js实现动态添加、删除行、onkeyup表格求和示例
- 使用js对select动态添加和删除OPTION示例代码
- [ --> C Language<-- ] employee信息添加,删除,列表的示例程序
- SQL Server创建、删除、修改、查看触发器示例
- php中DOMDocument简单用法示例代码(XML创建、添加、删除、修改)
- 用javascript删除当前行,添加行(示例代码)
- 两张表数据同步 (添加、删除、修改 触发器)
- MOSS添加删除导航结点代码示例(SPNavigationNode)
- 添加和删除HTML节点的简单示例
- 添加、删除、修改触发器,更新数据放入t_log表
- MOSS添加删除导航结点代码示例(SPNavigationNode)
- asp.net利用json填充下拉框及js动态添加表格行、删除表格行的示例
- MOSS添加删除导航结点代码示例(SPNavigationNode)
- DOM 动态添加元素以及删除元素示例
- 添加和删除显示任务栏图标示例
- js动态添加删除,后台取数据(示例代码)