`
JadeLuo
  • 浏览: 425611 次
  • 性别: Icon_minigender_1
  • 来自: 珠海
社区版块
存档分类
最新评论

批量新增触发器

 
阅读更多
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.InputStreamReader;
/**
 * http://www.open-open.com/lib/view/open1427082615949.html
 * 利用触发器设置PostgreSQL表监控:监控表的增,删,改
 * @author jade
 */
public class BatchGenTriger {

    public static void main(String[] args) {
        String filePath = "C:\\Users\\jade\\Desktop\\trigers.txt"; //给我你要读取的文件夹路径
        try {
            try (BufferedReader bufReader = new BufferedReader(new InputStreamReader(new FileInputStream(filePath), "UTF-8")))//数据流读取文件
            {
                String temp = null;
                while ((temp = bufReader.readLine()) != null) {
                    System.out.println("CREATE TRIGGER \"tri_" + temp + "\" BEFORE INSERT OR UPDATE OR DELETE ON " + temp + " FOR EACH ROW EXECUTE PROCEDURE change_trigger();");
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

//CREATE FUNCTION change_trigger()
//    RETURNS trigger AS $$
//    BEGIN
//        IF TG_OP = 'INSERT' THEN
//            INSERT  INTO logging.user_history(tabname,schemaname,operation,new_val)  values(TG_RELNAME,TG_TABLE_SCHEMA,TG_OP, (NEW));
//        RETURN NEW;
//        ELSIF TG_OP = 'UPDATE'  THEN
//                INSERT INTO logging.user_history(tabname,schemaname,operation,new_val,old_val) values(TG_RELNAME,TG_TABLE_SCHEMA,TG_OP, (NEW), (OLD));
//        RETURN NEW;
//        ELSIF TG_OP = 'DELETE'  THEN
//              INSERT INTO logging.user_history(tabname,schemaname,operation, old_val) values(TG_RELNAME,TG_TABLE_SCHEMA,TG_OP, (OLD));
//    RETURN OLD; --返回值要与ELSIF平齐,因为先插入后最好才执行返回
//    END IF;
//END;
//$$ LANGUAGE 'plpgsql' SECURITY DEFINER;--security definer是指定创建该函数用户的权限执行,security invoker是指以调用该函数用户发权限执行

 

CREATE SCHEMA logging;
CREATE TABLE logging.user_history (
    id serial,
    tstamp timestamp DEFAULT now(),
    schemaname text,
    tabname text,
    operation text,
    who text DEFAULT current_user,
    new_val json,
    old_val json
);

 

分享到:
评论

相关推荐

    oracle快速批量生成表和触发器和序列.zip

    在Oracle数据库管理中,批量生成表、触发器和序列是一项常见的任务,特别是在系统初始化或数据迁移时。这个压缩包文件“oracle快速批量生成表和触发器和序列.zip”显然是为了帮助用户快速完成这类操作。下面将详细...

    SQLServer触发器实现不同服务器数据同步.pdf

    3. 实现同步处理,包括新增同步、修改同步和删除同步三个方面。 知识点总结 本文中涉及到的知识点包括: * SQL Server 触发器的概念和应用 * 分布式事务处理服务(MSDTC)的概念和应用 * 链接服务器的创建和应用 ...

    八爪鱼采集器

    【自定义模式】新增触发器功能,可根据特定条件进行采集,详细教程可查看:http://www.bazhuayu.com/tutorial/cfq 【自定义模式】新增浏览器模式,方便配置滑动验证码等网站采集规则 【自定义模式】提供八爪鱼6内核...

    c# 安泰家具销售系统 源码 + 数据库中脚本(包,存储过程,序列,函数,触发器等)

    例如,在安泰家具销售系统中,当新增或修改订单时,触发器可能自动检查库存情况,确保库存充足,或者在销售发生时自动更新库存状态。 总的来说,C#与Oracle的结合,为安泰家具销售系统构建了一个稳定、高效的数据...

    oracle数据库主键自增并且返回主键值

    一、创建序列 1.1、直接在PLSQL中设置 1.2、命令创建 create sequence seq_users ##创建序列seq_users increment by 1 ## 步长,每次加1 start with 1 ##从1开始 minvalue 1 ##最小值 maxvalue 9999999 ##最大值 ...

    手机同步的特征与简介_同步d触发器特征方程.docx

    例如新增的“全同步”功能,用户可以实现一键备份和一键恢复,极大地方便了数据的迁移工作;“快捷备份”功能让注册流程变得更加简便,手机号即账号,密码通过短信的形式快速告知用户;而“应用恢复”的优化则使得...

    在quartz包的基础上,封装了新增、修改、删除和获取定时任务状态的功能,方便对多个-QuartzManager.zip

    这通常涉及到定义作业(Job)类,该类包含实际要执行的任务逻辑,以及触发器(Trigger),定义任务执行的时间规则,如cron表达式或简单触发器。 2. **修改定时任务**:当需要调整已存在的定时任务,例如改变执行...

    oracle利用批处理文件执行SQL语句,bat连接oracle数据库并执行语句

    在这个场景中,我们可以利用批处理文件来简化Oracle数据库的操作,如删除用户、创建用户、创建表和触发器,以及执行其他SQL语句。 首先,我们需要了解如何在批处理文件中连接Oracle数据库。这通常通过Oracle的...

    ZABBIX详解

    - 批量更新监控项的设置; - 监控项和触发器的创建和管理; - 用户自定义参数的设置; - 可加载模块的使用; - Windows性能计数器的监控。 事件章节涉及触发器事件的生成、手动关闭问题事件、事件的通知、事件关联...

    数据库设计说明文书_教学.doc

    在教学环境中,可能会创建用于批量添加学生、计算平均分、更新课程信息等操作的存储过程。 3.5 触发器设计 触发器是数据库自动执行的程序,通常用于在特定数据更改时执行额外的操作。例如,当学生退选一门课程时,...

    宿舍管理系统,对学生宿舍信息进行增删查改,登录

    2. **宿舍信息管理**:管理员可以新增宿舍信息,包括宿舍编号、所在楼栋、房间类型、容纳人数等,并对已有的宿舍信息进行修改或删除。同时,系统可能提供搜索功能,方便管理员快速找到特定宿舍的信息。 3. **学生...

    Mysql实验2.pdf

    例如,商品ID设置为int类型,并且使用auto_increment属性,这样每当新增一条销售记录时,商品ID会自动递增,无需手动指定。 ```sql CREATE TABLE salesrecords ( id INT AUTO_INCREMENT PRIMARY KEY, name ...

    2020计算机数据库系统原理实践任务书1

    - 批处理操作:批量将乘车记录表中特定条件(如从武汉出发)的数据插入到新表`WH_TakeTrainRecord`。 - 数据导入导出:学习如何使用DBMS的导入导出功能,将数据从表导出到文件,再从文件导入回空表。 3. **数据库...

    数据库比较软件

    6. **批量操作**:支持批量修改、删除或添加数据库对象,提高工作效率。 7. **安全控制**:在进行数据库操作时,通常需要用户授权,确保操作的安全性。 8. **导入导出**:支持将比较结果导出为脚本文件,方便...

    mysql5.1及mysql4.1帮助文档.chm.rar

    7. **性能监视**:新增了Performance Schema,这是一个用于收集和分析MySQL服务器性能数据的内置工具。 8. **XML支持**:MySQL 5.1提供了对XML的内置支持,可以直接插入、检索和处理XML文档。 9. **安全性和权限**...

    物资管理系统后台数据传输模块

    例如,可以使用 Quartz 或 Spring Task 进行定时任务设置,当满足特定条件(如数据更新、新增)时,触发同步操作。实时监听则可能需要数据库的触发器或者Change Data Capture (CDC)技术来捕获并传递变更信息。 在...

    SybaseToad:小巧的oracle数据库查询修改工具

    新增功能:支持informix、增加export table界面、增加存储过程执行界面、增加存储过程重编译、增加表对象的触发器修改查看。修改bug若干。 功能类似toad或plsql: 1,支持语法高亮,显示表提示,类似plsql。 2,能...

    Kettle实现增量抽取数据

    在这个案例中,我们不依赖时间戳,可能需要用到其他的追踪机制,如触发器、序列号或者更改数据捕获(CDC)技术。 以下是实现这一目标的一般步骤: 1. **创建基础转换**:在Kettle中,我们需要创建一个新的转换,这...

    微软Office技巧大赛优秀作品

    10. **Office新增功能**:参赛者还探索了Office的最新版本中新增的功能,如Microsoft Teams的集成、AI辅助的编辑建议等,展示了与时俱进的应用技巧。 以上是微软Office技巧大赛中的部分亮点,通过学习和实践这些...

    SybaseToad7.0

    新增功能:支持informix、增加export table界面、增加存储过程执行界面、增加存储过程重编译、增加表对象的触发器修改查看。修改bug若干。 功能类似toad或plsql: 1,支持语法高亮,显示表提示,类似plsql。...

Global site tag (gtag.js) - Google Analytics