postgre SQL 中的 触发器 (实例应用,如何备份更新之前的差分数据)
来源:互联网 发布:java遍历map集合 编辑:程序博客网 时间:2024/04/24 05:51
有两张表 user 和 diff_user_list
当对user表进行增删改查,或其中某个字段发生变化时,相应的对diff_user_list表中插入字段。
下面的代码的作用是,当user表中的字段"姓名"更新时,把旧的记录存入 diff_user_list 表中
依此类推,还可以写出 插入数据 删除数据时的,备份之前数据的代码。
create or replace function make_diff_user_list() returns trigger as$body$ declare curtime timestamp; begin curtime := `now`; IF(TG_OP = 'UPDARE' ) THEN IF (OLD.user_name != NEW.user_name ) THEN INSERT INTO diff_user_list (user_id, user_name, update_time, operate_flg) VALUES ( OLD.user_id, OLD.user_name, curtime, `1` ); RETURN NULL; END IF; END IF; RETURN NULL; EXCEPTION WHEN OTHERS THEN RETURN NULL; end;$body$ language 'plpgsql' volatile cost 100;
说明
上面这段代码是一个存储过程 (procedure)
其中有$body$ 这里面可以不是body,可以是别的东西,比如 diff_user_list
下面这段代码是建立触发器,并与上面的存储过程相关联
create trigger diff_user_listafter insert or update or delete ON userfor each row execute procedure make_diff_user_list();
注意:
===============================================
如果报错
language "plpgsql" dose not exist
执行如下语句
create language plpgsql
- postgre SQL 中的 触发器 (实例应用,如何备份更新之前的差分数据)
- postgre sql安装时忘记之前密码时如何处理。
- Sql触发器: 数据更改,保存之前的数据
- 应用JNI进行差分更新
- 微分方程在建模中的应用(建立差分模型)
- 微分方程在建模中的应用(使用差分普通的递推关系)
- sql 中如何将A表的数据更新到B表中,数据表备份语句
- SQL 通过触发器实现delete数据备份
- SQL笔记 --- 数据查询,数据更新,触发器
- SQL触发器实例(收集的)
- usaco布局(差分约束系统的应用)
- SQL 更新触发器的使用
- 查询实例中的SQL (正在执行的 性能差的)
- SQL server触发器实例讲解(如何实现两个表的关联)
- SQL Server DDL触发器应用实例
- Android的增量更新,差分更新--服务器端&客户端
- postgre SQL 字符串处理总结【后续更新】
- SQL触发器与数据约束实例
- WOrd ,excel实现打印功能
- opencvAX-day11
- 函数指针指针数组
- ORACLE表空间与数据文件
- createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY)
- postgre SQL 中的 触发器 (实例应用,如何备份更新之前的差分数据)
- 初始化硬盘
- 【多媒体基础知识】 ---MPEG标准简介
- js实现超链接的伪装
- 60个碳原子
- hdoj3832
- 第八周作业 2.0
- android代码重构日记(二)——MVC框架
- C语言中volatile关键字的作用