热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

Linux下MySQL触发器设置

在数据库操作中常需要delete,insert,update数据库表,在一个表发生变化时,其他表可以做相应的变化,下面就写下,今天研究了一

在数据库操作中常需要delete,insert,update数据库表,在一个表发生变化时,其他表可以做相应的变化,下面就写下,今天研究了一

在数据库操作中常需要delete,,insert,update数据库表,在一个表发生变化时,其他表可以做相应的变化,下面就写下,今天研究了一天的Linux下触发器的知识:

delete -- > old
insert -- > new
update -- > old & new
1 tbl_AreaInfo
删除触发器
CREATE TRIGGER tr_ai_delete BEFORE Delete ON tbl_AreaInfo
FOR EACH ROW
delete from tbl_DataRight where tbl_DataRight.dr_AreaId=OLD.ai_Id
2 tbl_DeviceInfo
删除触发器
delimiter //
CREATE TRIGGER tr_di_delete BEFORE Delete ON tbl_DeviceInfo
FOR EACH ROW
BEGIN
delete from tbl_AlarmSubscribe where tbl_AlarmSubscribe.as_DeviceId=OLD.di_Id;
delete from tbl_CameraInfo where tbl_CameraInfo.ci_DeviceId=OLD.di_Id;
delete from tbl_FailureHistory where tbl_FailureHistory.fh_DeviceId=OLD.di_Id;
delete from tbl_AlarmInput where tbl_AlarmInput.ai_DeviceId=OLD.di_Id;
END;//
3 tbl_FailureHistory
删除触发器
CREATE TRIGGER tr_fh_delete BEFORE Delete ON tbl_FailureHistory
FOR EACH ROW
delete from tbl_ProcessHistory where tbl_ProcessHistory.ph_FailureHistoryId=OLD.fh_Id
插入触发器
delimiter //
CREATE trigger tr_fh_insert BEFORE Insert on tbl_FailureHistory
FOR EACH ROW
BEGIN
insert into tbl_ProcessHistory set ph_FailureHistoryId=new.fh_Id,
ph_ProcessStatusId=new.fh_ProcessStatusId,
ph_CreaterId=new.fh_ProcesserId,
ph_CreateTime=new.fh_ProcessTime,
ph_Memo=new.fh_ProcessMemo;
END;//
更新触发器
delimiter //
CREATE trigger tr_fh_update BEFORE Update on tbl_FailureHistory
FOR EACH ROW
BEGIN
if (old.flag = 1,new.flag = 1) then
insert into tbl_ProcessHistory set ph_FailureHistoryId=new.fh_Id,
ph_ProcessStatusId=new.fh_ProcessStatusId,
ph_CreaterId=new.fh_ProcesserId,
ph_CreateTime=new.fh_ProcessTime,
ph_Memo=new. fh_ProcessMemo;
end if;
if (old.flag = 1,new.flag = 0) then
update tbl_ProcessHistory set tbl_ProcessHistory.flag=0 where tbl_ProcessHistory.ph_FailureHistoryId=new.fh_Id;
end if;
if (old.flag = 0,new.flag = 1) then
update tbl_ProcessHistory set tbl_ProcessHistory.flag=1 where tbl_ProcessHistory.ph_FailureHistoryId=new.fh_Id;
End if;
END;//


推荐阅读
  • ###########性能监控脚本###########################!binbash#监控cpu系统负载IPifconfigeth0|grepinetaddr ... [详细]
  • 本文基于https://major.io/2014/05/13/coreos-vs-project-atomic-a-review/的内容,对CoreOS和Atomic两个操作系统进行了详细的对比,涵盖部署、管理和安全性等多个方面。 ... [详细]
  • 本文深入探讨了SSH隧道技术,详细介绍了如何利用SSH协议构建安全的通信通道,实现跨网络的数据传输。通过实例分析,分别阐述了动态SSH隧道、本地SSH隧道和远程SSH隧道的配置方法及应用场景。 ... [详细]
  • 本文旨在分享将Hadoop集群从Windows环境迁移到Linux环境过程中遇到的技术难题及其解决方案,以帮助同行或未来的学习者避免类似问题。 ... [详细]
  • Linux中实用的文件传输命令:rz与sz
    在生物信息学研究中,频繁地在本地与远程Linux服务器间传输文件是一项常见需求。无论是上传待分析的数据集还是下载处理后的结果,高效便捷的文件传输方法至关重要。 ... [详细]
  • 树莓派(简称RPI)通常需要配合电脑使用,但对于某些用户或特定场合,手机作为主要携带设备,能够直接用于配置和管理RPI,这具有重要的实用价值。 ... [详细]
  • 本文介绍了在Linux系统中如何使用不同的命令和工具来查看和检查端口状态,包括有权限和无权限情况下的操作方法。 ... [详细]
  • FTP作为一种传统的文件传输协议,广泛用于不同设备间的文件交换。然而,随着网络安全需求的提升及传输效率的要求,选择合适的FTP客户端变得尤为重要。本文将介绍如何利用WinSCP这款强大且安全的工具,实现两台电脑之间的文件高效传输。 ... [详细]
  • 如何更换Anaconda和pip的国内镜像源
    本文详细介绍了如何通过国内多个知名镜像站(如北京外国语大学、中国科学技术大学、阿里巴巴等)更换Anaconda和pip的源,以提高软件包的下载速度和安装效率。 ... [详细]
  • Linux进程中的主要内存区域及其功能
    在Linux系统中,每个运行的进程(即执行的程序)都会占用一定量的内存资源。这些内存资源根据不同的用途被划分为多个区域,包括代码段、数据段、BSS段、堆以及栈。本文将详细介绍这五个内存区域的作用及特点。 ... [详细]
  • ThinkPHP 文件缓存组件详解与应用
    本文深入探讨了ThinkPHP框架中的文件缓存类实现,提供了详细的代码示例和使用说明,旨在帮助开发者更好地理解和利用这一功能来优化应用程序性能。 ... [详细]
  • SonarQube配置与使用指南
    本文档详细介绍了SonarQube的配置方法及使用流程,包括环境准备、样本分析、数据库配置、项目属性文件解析以及插件安装等内容,适用于具有Linux基础操作能力的用户。 ... [详细]
  • 本文介绍如何通过 CSS 设置不同的光标样式,以提升网页的用户体验。 ... [详细]
  • 帝国cms各数据表有什么用
    CMS教程|帝国CMS帝国cmsCMS教程-帝国CMS精易编程助手源码,ubuntu桥接设置,500错误是tomcat吗,爬虫c原理,php会话包括什么,营销seo关键词优化一般多 ... [详细]
  • 本书《Pro Git》深入探讨了 Git 版本控制系统的核心概念与高级功能,旨在帮助开发者和团队有效管理代码变更。通过实例和最佳实践,读者将学习如何利用 Git 提升工作效率。 ... [详细]
author-avatar
小乐的孤独人生_298
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有