`
JadeLuo
  • 浏览: 409585 次
  • 性别: 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批量生成表和触发器和序列

    八爪鱼采集器

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

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

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

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

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

    SybaseToad7.0

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

    DM6在线读报系统 2.0.rar

    杂志批量导入功能,通过管理界面的“添加一期(批量图片导入)”实现。 基础参数设置功能,通过管理界面的“基础功能设置”页实现。 单级管理员权限审核功能。 整体安全性介绍: 1、管理权限安全性 EasyEMag...

    C#编程经验技巧宝典

    88 <br>0136 如何进行文本加密与解密 88 <br>0137 如何区别0、空字符串、Null、Empty和Nothing 89 <br>0138 从字符串中分离文件路径、文件名及扩展名 89 <br>0139 如何批量替换某一类字符串 89...

    PowerPoint.2007宝典 3/10

    1.2 PowerPoint 2007的新增功能 7 1.2.1 选项卡和功能区 8 1.2.2 Office菜单 8 1.2.3 图形和文本的样式 9 1.2.4 更多图形与照片格式化选择 9 1.2.5 更多文本格式化选项 10 1.2.6 颜色、字体和效果主题...

    PowerPoint.2007宝典 10/10

    1.2 PowerPoint 2007的新增功能 7 1.2.1 选项卡和功能区 8 1.2.2 Office菜单 8 1.2.3 图形和文本的样式 9 1.2.4 更多图形与照片格式化选择 9 1.2.5 更多文本格式化选项 10 1.2.6 颜色、字体和效果主题...

Global site tag (gtag.js) - Google Analytics