• Mysql表数据创建3种触发器更新数据


    1、创建2张测试表

    1. SET NAMES utf8mb4;
    2. SET FOREIGN_KEY_CHECKS = 0;
    3. -- ----------------------------
    4. -- Table structure for data_analysis
    5. -- ----------------------------
    6. DROP TABLE IF EXISTS `data_analysis`;
    7. CREATE TABLE `data_analysis` (
    8. `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
    9. `data_source` int(11) NULL DEFAULT NULL COMMENT '数据源 / 数源单位数 / 注册审核通过数 / 数据仓数',
    10. `data_table` int(11) NULL DEFAULT NULL COMMENT '数据表/ 已归集接口数 / 注册用户数 / 资源项',
    11. `meta_data` int(11) NULL DEFAULT NULL COMMENT '元数据 / 已归集字段数 / 组织个数 / 数据项',
    12. `application_total` int(11) NULL DEFAULT NULL COMMENT '应用系统数 / 接口调用总数 / 角色个数 / 数据量',
    13. `life_cycle` int(11) NULL DEFAULT NULL COMMENT '生命周期异常数 / 应用系统 / 用户活跃度',
    14. `table_abnormal` int(11) NULL DEFAULT NULL COMMENT '表监控异常数 / 资源项',
    15. `field_abnormal` int(11) NULL DEFAULT NULL COMMENT '字段监控异常数 / 数据项',
    16. `data_total` int(11) NULL DEFAULT NULL COMMENT '数据量',
    17. `type` int(11) NULL DEFAULT NULL COMMENT '类型(0-数据分析,1-数据共享,2-系统平台使用,3-数据仓建设)',
    18. `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
    19. `update_time` datetime(0) NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '更新时间',
    20. PRIMARY KEY (`id`) USING BTREE
    21. ) ENGINE = InnoDB AUTO_INCREMENT = 5 CHARACTER SET = utf8 COLLATE = utf8_bin COMMENT = '数据分析、数据共享、系统平台使用、数据仓建设' ROW_FORMAT = Dynamic;
    22. -- ----------------------------
    23. -- Records of data_analysis
    24. -- ----------------------------
    25. INSERT INTO `data_analysis` VALUES (1, 1290, 2111278, 5110, 110, 110, 1150, 550, NULL, 0, '2022-08-24 15:07:17', '2022-08-24 15:07:37');
    26. INSERT INTO `data_analysis` VALUES (2, 90, 1278, 55145, 1110, 110, 1952, 3254, 31224, 1, '2022-08-24 15:07:17', '2022-08-24 15:27:36');
    27. INSERT INTO `data_analysis` VALUES (3, 2216, 11236, 257, 79, 90, NULL, NULL, NULL, 2, '2022-08-24 15:07:17', '2022-08-24 15:27:36');
    28. INSERT INTO `data_analysis` VALUES (4, 6, 11252, 223752, 1231211, NULL, NULL, NULL, NULL, 3, '2022-08-24 15:07:17', '2022-08-26 11:39:48');
    29. -- ----------------------------
    30. -- Table structure for data_warehouse
    31. -- ----------------------------
    32. DROP TABLE IF EXISTS `data_warehouse`;
    33. CREATE TABLE `data_warehouse` (
    34. `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
    35. `name` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL COMMENT '名称',
    36. `resources_total` int(11) NULL DEFAULT NULL COMMENT '资源项',
    37. `data_item` int(11) NULL DEFAULT NULL COMMENT '数据项',
    38. `data_total` int(11) NULL DEFAULT NULL COMMENT '数据量',
    39. `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
    40. `update_time` datetime(0) NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '更新时间',
    41. PRIMARY KEY (`id`) USING BTREE
    42. ) ENGINE = InnoDB AUTO_INCREMENT = 10 CHARACTER SET = utf8 COLLATE = utf8_bin COMMENT = '数据仓建设' ROW_FORMAT = Dynamic;
    43. -- ----------------------------
    44. -- Records of data_warehouse
    45. -- ----------------------------
    46. INSERT INTO `data_warehouse` VALUES (1, '公益诉讼主题库', 12, 25, 25874, '2022-08-24 15:29:52', '2022-08-25 16:34:12');
    47. INSERT INTO `data_warehouse` VALUES (2, '民生主题库', 25, 38, 2541, '2022-08-24 15:30:16', '2022-08-25 16:09:34');
    48. INSERT INTO `data_warehouse` VALUES (3, '人社主题库', 35, 25, 54774, '2022-08-24 15:30:35', '2022-08-25 16:09:31');
    49. INSERT INTO `data_warehouse` VALUES (4, '形式主题库', 15, 24, 254, '2022-08-24 15:31:03', '2022-08-25 16:09:27');
    50. INSERT INTO `data_warehouse` VALUES (5, '晚年主体库', 25, 35, 25874, '2022-08-25 15:28:41', '2022-08-25 15:28:44');
    51. INSERT INTO `data_warehouse` VALUES (6, '少年主题库', 25, 14, 258741, '2022-08-25 15:29:17', '2022-08-25 15:29:20');

    2、创建触发器

    2.1通过navicat操作界面创建

    3个触发器的功能都是一样的,数据新增、更新、删除重新统计数据更新到另一张表。

    3、通过sql创建触发器

    1. DROP TRIGGER IF EXISTS `insert_data`;
    2. delimiter ;;
    3. CREATE TRIGGER `insert_data` AFTER INSERT ON `data_warehouse` FOR EACH ROW UPDATE `data_analysis`
    4. SET
    5. -- 数据仓数
    6. `data_source` = (SELECT COUNT(*) FROM data_warehouse),
    7. -- 资源项
    8. `data_table` = (SELECT sum(resources_total) from data_warehouse),
    9. -- 数据项
    10. `meta_data` = (SELECT sum(data_item) from data_warehouse),
    11. -- 数据量
    12. `application_total` = (SELECT sum(data_total) from data_warehouse),
    13. `update_time` = NOW()
    14. WHERE
    15. `type` = 3
    16. ;;
    17. delimiter ;
    18. -- ----------------------------
    19. -- Triggers structure for table data_warehouse
    20. -- ----------------------------
    21. DROP TRIGGER IF EXISTS `update_datd`;
    22. delimiter ;;
    23. CREATE TRIGGER `update_datd` AFTER UPDATE ON `data_warehouse` FOR EACH ROW UPDATE `data_analysis`
    24. SET
    25. -- 数据仓数
    26. `data_source` = (SELECT COUNT(*) FROM data_warehouse),
    27. -- 资源项
    28. `data_table` = (SELECT sum(resources_total) from data_warehouse),
    29. -- 数据项
    30. `meta_data` = (SELECT sum(data_item) from data_warehouse),
    31. -- 数据量
    32. `application_total` = (SELECT sum(data_total) from data_warehouse),
    33. `update_time` = NOW()
    34. WHERE
    35. `type` = 3
    36. ;;
    37. delimiter ;
    38. -- ----------------------------
    39. -- Triggers structure for table data_warehouse
    40. -- ----------------------------
    41. DROP TRIGGER IF EXISTS `delete_data`;
    42. delimiter ;;
    43. CREATE TRIGGER `delete_data` AFTER DELETE ON `data_warehouse` FOR EACH ROW UPDATE `data_analysis`
    44. SET
    45. -- 数据仓数
    46. `data_source` = (SELECT COUNT(*) FROM data_warehouse),
    47. -- 资源项
    48. `data_table` = (SELECT sum(resources_total) from data_warehouse),
    49. -- 数据项
    50. `meta_data` = (SELECT sum(data_item) from data_warehouse),
    51. -- 数据量
    52. `application_total` = (SELECT sum(data_total) from data_warehouse),
    53. `update_time` = NOW()
    54. WHERE
    55. `type` = 3
    56. ;;
    57. delimiter ;

     

  • 相关阅读:
    2023华数杯数学建模A题2023华数杯A 题隔热材料的结构优化控制研究
    2022 CSP-S2 提高组 第2轮 复赛 视频
    C++——智能指针
    PreScan快速入门到精通第二十三讲2D车辆动力学模型
    浏览器插件,把浏览器主页换成macOS的风格,瞬间变有趣了
    JavaWeb
    linux-伪首部校验和 和 icmpv6 socket组播
    SpringMVC:RESTful案例
    java计算机毕业设计-游戏账号交易平台-演示录像-源程序+mysql+系统+lw文档+远程调试
    关于Facebook营销的十个常见问题,一次性讲清楚!
  • 原文地址:https://blog.csdn.net/tanqingfu1/article/details/126540547