1 前言

功能需求:当一张表格某个字段变化,另一张表某个字段写入该值

2 代码

  CREATE OR REPLACE FUNCTION "public"."synStatus"()
RETURNS "pg_catalog"."trigger" AS $BODY$ declare vl_status int; BEGIN SELECT status INTO vl_status FROM ordergoods WHERE order_id = NEW.order_id;
-- Routine body goes here...
IF( TG_OP='UPDATE' ) THEN
UPDATE order SET status = vl_status WHERE NEW.order_id = order_id;
END IF;
RETURN NEW;
END
$BODY$
LANGUAGE plpgsql VOLATILE
COST 10 //触发器
CREATE TRIGGER "triggerSynOrder" AFTER UPDATE OF "status", "timeline" ON "public"."ordergoods"
FOR EACH ROW
EXECUTE PROCEDURE "public"."synStatus"();

功能2:子订单中状态最小的更新到订单上,并更新时间线字段

  CREATE OR REPLACE FUNCTION "public"."synStatus2"()
RETURNS "pg_catalog"."trigger" AS $BODY$ declare status_min int; BEGIN SELECT MIN(status) INTO status_min FROM ordergoods WHERE order_id = NEW.order_id;
-- Routine body goes here...
IF( TG_OP='UPDATE' ) THEN
UPDATE order SET status = status_min,timeline = concat_ws(',', timeline,cur_timeline_status)),cur_timeline_status = NEW.cur_timeline_status WHERE NEW.order_id = order_id;
END IF;
RETURN NEW;
END
$BODY$
LANGUAGE plpgsql VOLATILE
COST 10 //触发器
CREATE TRIGGER "triggerSynOrder" AFTER UPDATE OF "status", "timeline" ON "public"."ordergoods"
FOR EACH ROW
EXECUTE PROCEDURE "public"."synStatus2"();

3 小结

注:方法中NEW和OLD指的是触发器监听的某表某行的新数据和未更新前的数据  

  

最新文章

  1. myisam、innodb存储引擎比较
  2. Toad for Oracle Format Option
  3. perl的一些函数(二)
  4. HTML5视频播放在ios下浮动元素无法点击的解决方案
  5. JavaScript系列:函数 自执行 表达式 声明 定义
  6. hdu1203
  7. 17.1.1.4 Obtaining the Replication Master Binary Log Coordinates 获取复制Master Binary Log的坐标:
  8. Oracle 分页方法研究
  9. 【MYSQL】ubuntu13安装mysql(转)
  10. 【网站建设】Linux上安装MySQL - 12条命令搞定MySql
  11. kali下安装截图软件
  12. Linux中的wheel用户组是什么?
  13. Android--多线程之Looper
  14. 洛谷P4302 [SCOI2003]字符串折叠(区间dp)
  15. Python实现switch效果
  16. 搜狐JS查ip
  17. 无线渗透开启WPS功能的路由器
  18. dovecot--查询未读邮件个数
  19. 批处理文件(Batch Files )
  20. Windows全版本KMS激活脚本

热门文章

  1. [Android] Android利用Coordinatorlayout+AppbarLayout实现折叠式布局
  2. 细说shiro之二:组件架构
  3. you can't add a reference to Newtonsoft.Json.dll as it was not built against the silverlight runtime
  4. Postman 安装及使用入门教程 (谷歌浏览器插件版)
  5. ElasticSearch - Shard数调优(ElasticSearch性能)
  6. 【四】Ribbon负载均衡
  7. 解决 Android Device Monitor 常见问题
  8. opencv实现坐标旋转(教你框住小姐姐)
  9. wordpress网站分类目录怎么排序
  10. luogu P3241 [HNOI2015]开店