批量新增触发器

Java代码  

  1. import java.io.BufferedReader;  
  2. import java.io.FileInputStream;  
  3. import java.io.InputStreamReader;  
  4. /** 
  5.  * http://www.open-open.com/lib/view/open1427082615949.html 
  6.  * 利用触发器设置PostgreSQL表监控:监控表的增,删,改 
  7.  * @author jade 
  8.  */  
  9. public class BatchGenTriger {  
  10.   
  11.     public static void main(String[] args) {  
  12.         String filePath = "C:\\Users\\jade\\Desktop\\trigers.txt"; //给我你要读取的文件夹路径  
  13.         try {  
  14.             try (BufferedReader bufReader = new BufferedReader(new InputStreamReader(new FileInputStream(filePath), "UTF-8")))//数据流读取文件  
  15.             {  
  16.                 String temp = null;  
  17.                 while ((temp = bufReader.readLine()) != null) {  
  18.                     System.out.println("CREATE TRIGGER \"tri_" + temp + "\" BEFORE INSERT OR UPDATE OR DELETE ON " + temp + " FOR EACH ROW EXECUTE PROCEDURE change_trigger();");  
  19.                 }  
  20.             }  
  21.         } catch (Exception e) {  
  22.             e.printStackTrace();  
  23.         }  
  24.     }  
  25. }  
  26.   
  27. //CREATE FUNCTION change_trigger()  
  28. //    RETURNS trigger AS $$  
  29. //    BEGIN  
  30. //        IF TG_OP = 'INSERT' THEN  
  31. //            INSERT  INTO logging.user_history(tabname,schemaname,operation,new_val)  values(TG_RELNAME,TG_TABLE_SCHEMA,TG_OP, (NEW));  
  32. //        RETURN NEW;  
  33. //        ELSIF TG_OP = 'UPDATE'  THEN  
  34. //                INSERT INTO logging.user_history(tabname,schemaname,operation,new_val,old_val) values(TG_RELNAME,TG_TABLE_SCHEMA,TG_OP, (NEW), (OLD));  
  35. //        RETURN NEW;  
  36. //        ELSIF TG_OP = 'DELETE'  THEN  
  37. //              INSERT INTO logging.user_history(tabname,schemaname,operation, old_val) values(TG_RELNAME,TG_TABLE_SCHEMA,TG_OP, (OLD));  
  38. //    RETURN OLD; --返回值要与ELSIF平齐,因为先插入后最好才执行返回  
  39. //    END IF;  
  40. //END;  
  41. //$$ LANGUAGE 'plpgsql' SECURITY DEFINER;--security definer是指定创建该函数用户的权限执行,security invoker是指以调用该函数用户发权限执行  

 

Sql代码  

  1. CREATE SCHEMA logging;  
  2. CREATE TABLE logging.user_history (  
  3.     id serial,  
  4.     tstamp timestamp DEFAULT now(),  
  5.     schemaname text,  
  6.     tabname text,  
  7.     operation text,  
  8.     who text DEFAULT current_user,  
  9.     new_val json,  
  10.     old_val json  
  11. );  
时间: 2024-10-29 08:14:57

批量新增触发器的相关文章

ibatis-IBATIS像mysql中批量新增问题

问题描述 IBATIS像mysql中批量新增问题 这是ibatis sqlmap中的 sql parameterClass="com.spci.po.MemberMerchant"> <![CDATA[ insert INTO t_member_credit (ID,MEMBER_ID,TRADE_ID,BALANCE) VALUES (#id#,#memberId#,#tradeId#,#balance#) ON DUPLICATE KEY UPDATE BALANCE=

spring-mybatis 批量新增时,怎么批量返回自增ID,数据库是mysql

问题描述 mybatis 批量新增时,怎么批量返回自增ID,数据库是mysql 各位大侠你们好..如题..求解,下面是DAO和SQL: spring Dao的方法定义: public List saveCatalogList(@Param("catalist") List catalist);? mybatis的批量插入SQL: insert into CATALOG (Marc_Type,Catalog_State,Doc_Type,LANG_CODE,Country_Code,Ca

MyBatis批量新增和更新

版权声明:本文为博主原创文章,转载注明出处http://blog.csdn.net/u013142781 目录(?)[+] 之前有开发任务一个接口里面有大量的数据新增和更新操作,导致十分缓慢.使用了批量操作之后速度有明显提升,几乎百倍千倍的速度提升. 博主之前统计过,通过普通接口一次数据库插入大概需要200ms,对于大量新增或更新操作的情况,数据库批量操作是十分有必要的.废话不多说,直接上代码. 博主的resultMap如下: <resultMap id="BaseResultMap&qu

Juniper防火墙的批量新增用户命令工具

今天给一客户在Juniper SSG140防火墙上调试L2TP VPN,当建立好之后,客户要求我在该防火墙上面建立350个L2TP VPN用户,顿时傻眼了,如果手工建立350个L2TP VPN用户那不得累死呀!于是针对该用户的需求,写了一个小程序专门用于生成L2TP VPN用户命令(如下图). 通过该小程序,只需要填写上相关的参数,如需要生成多少个用户,用户名前缀是什么,密码前缀是什么,以及组用户名(可选).输入好之后,点击生成命令即可将命令生成在与该程序相同目录的usercmd.txt文件中(

百度推广新增批量下载&amp;上传喜迎新年

新的一年就快到了,为了让广大客户的推广更方便,蹊径平台有了全新升级,新增批量下载和批量上传的功能.有了这两个功能,你可以轻松知晓账户里蹊径的整体投放情况,了解哪些单元做了蹊径,哪些没做:同时,操作更加方便,可以筛选出已经做了蹊径的单元,批量在上面进行修改,对于以前未做蹊径的可以直接批量编辑新增. 让我们一起跟着推广顾问小米详细了解下这两个新功能吧! 一.批量下载物料 推广顾问小米管理的账户结构庞大,有几十个推广计划和上百个推广单元.小米想一目了然地知道账户中哪些单元没有添加蹊径物料,并对部分没有

cacti 如何批量建立数据源data source

问题描述 cacti 如何批量建立数据源data source cacti 如何批量建立数据源data source,cacti自带的方法里只有批量新增主机 tree 和图 没看到有批量新增数据源的脚本呢 解决方案 http://os.51cto.com/art/201103/250983.htmhttp://www.linuxidc.com/Linux/2012-11/74634.htm

文档-关于批量搜索的一些问题

问题描述 关于批量搜索的一些问题 我在文本文档中有一个文件名列表,想要从一个文件夹(其中包含了所需文件以及多余的文件)中根据列表生成一个文档(用来存储没有匹配文档的文件名).有没有软件可以做到以上要求的批量搜索,或者哪位大神提供批处理命令程序?由于文件名数上百,不可能用windows自带搜索来搜. 解决方案 mybatis批量新增,更新的一些问题---------------------- 解决方案二: 用批处理脚本就可以了. 1 在存放文件的文件夹, 生成文件列表 all_files.txt

select-mybatis加oracle批量insert中的序列问题,可不可以用union做批量的sql语句--急

问题描述 mybatis加oracle批量insert中的序列问题,可不可以用union做批量的sql语句--急 <insert id="saveManyPopInfo" parameterType="java.util.List"> insert into popinfo (popid,popname,remark) select seq_popid.nextval,p.* from ( <foreach collection="lis

sql数据库 当一张表的内容添加一条时 写一个触发器 使其自动再生成一张

问题描述 sql数据库 当一张表的内容添加一条时 写一个触发器 使其自动再生成一张 1C sql数据库 当一张表的内容添加一条时 写一个触发器 使其自动再生成一张表 但自动生成的表的名字需要是添加的这个表的一个字段的内容 比如说表中添加了一个成员的名字 需要自动生成的表的名字就是这个人名 解决方案 需求可以实现,但没有这么去做的,这个表里有10000条数据时,你生成1万张表???? 建议修改设计,改成其它的方案来实现 解决方案二: Sql Server数据库新增触发器里面可以通过select (