`

工作笔记--Mysql触发器使用示例

阅读更多

更新IDC_Device_Info表记录时,记录下修改的时间,存到Device_Last_Modify表中。

DROP TRIGGER IF EXISTS deviceLastUpdate;
CREATE TRIGGER deviceLastUpdate
AFTER UPDATE ON `IDC_Device_Info`
FOR EACH ROW
BEGIN
	BEGIN
		DECLARE cntOld TINYINT DEFAULT 0;
		DECLARE serviceIdOld INT DEFAULT 0;
		DECLARE deviceTypeOld INT DEFAULT 0;

		SET serviceIdOld 	= IFNULL(OLD.Service_ID,0);
		SET deviceTypeOld = IFNULL(OLD.Device_Type,0);

		SELECT COUNT(*) INTO cntOld FROM Device_Last_Modify WHERE Service_ID = serviceIdOld AND Device_Type = deviceTypeOld;
		IF cntOld > 0 THEN
			UPDATE Device_Last_Modify SET Last_Modify = UNIX_TIMESTAMP(NOW()) WHERE Service_ID = serviceIdOld AND Device_Type = deviceTypeOld;
		ELSE
			INSERT INTO Device_Last_Modify VALUES (serviceIdOld, deviceTypeOld, UNIX_TIMESTAMP(NOW()));
		END IF;
	END;

	BEGIN
		DECLARE cntNew TINYINT DEFAULT 0;
		DECLARE serviceIdNew INT DEFAULT 0;
		DECLARE deviceTypeNew INT DEFAULT 0;
		
		SET serviceIdNew 	= IFNULL(NEW.Service_ID,0);
		SET deviceTypeNew = IFNULL(NEW.Device_Type,0);
		
		SELECT COUNT(*) INTO cntNew FROM Device_Last_Modify WHERE Service_ID = serviceIdNew AND Device_Type = deviceTypeNew;
		IF cntNew > 0 THEN
			UPDATE Device_Last_Modify SET Last_Modify = UNIX_TIMESTAMP(NOW()) WHERE Service_ID = serviceIdNew AND Device_Type = deviceTypeNew;
		ELSE
			INSERT INTO Device_Last_Modify VALUES (serviceIdNew, deviceTypeNew, UNIX_TIMESTAMP(NOW()));
		END IF;
	END;
END;
 
分享到:
评论

相关推荐

    MYSQL学习资源及笔记-入门必备

    这份“MYSQL学习资源及笔记-入门必备”应该涵盖了这些主题,并可能包含实践练习和示例,是MySQL初学者的宝贵学习材料。通过深入学习和实践,你可以建立起坚实的基础,进一步探索更高级的主题,如复制、集群和高性能...

    MySQL笔记.pdf

    这只是MySQL笔记的部分内容,实际上MySQL的功能远不止这些,还包括视图、索引、事务处理、存储过程、触发器、函数等多个高级特性。了解并掌握这些内容,将有助于在实际项目中更高效地管理和操作数据。

    MySQL笔记,比较全,知识点都有,而且有例子

    笔记中将通过示例演示CREATE TABLE、ALTER TABLE和DROP TABLE的使用。 四、查询语言SQL SQL是查询和操作数据的核心工具。这部分将涵盖单表查询(包括WHERE子句、ORDER BY、GROUP BY、HAVING等)、多表查询(JOIN...

    MYSQL笔记.zip

    MySQL是世界上最受欢迎的关系型数据库管理系统(RDBMS)之一,被广泛应用于Web应用程序和各种规模的企业...然而,要想成为真正的MySQL专家,还需要不断实践和深入学习更高级的主题,如存储过程、触发器、视图、分区等。

    MySQL入门很简单-学习笔记.pdf

    ### MySQL入门知识点详解 #### 一、数据库概述 1. **数据存储方式**: - 数据库是组织、存储和...以上是MySQL入门阶段的一些基础知识点,通过这些内容的学习,可以帮助初学者快速掌握MySQL的基本操作和使用技巧。

    mysql学习笔记MYSQL使用注意事项

    MySQL是世界上最受欢迎的关系型数据库管理系统之一,用于存储和管理数据。在学习MySQL的过程中,...在实际工作中,不断学习和实践,掌握更多高级特性,如视图、存储过程、触发器等,将使你成为更出色的数据库管理员。

    mysql基础笔记

    ### MySQL基础笔记 #### 1.1 MySQL 表复制 在MySQL中,有时我们需要复制一个现有的表结构或者数据。这可以通过以下两种方式实现: - **使用`LIKE`关键字**: 如果我们只想复制表结构而不复制数据,可以使用`LIKE`...

    mysql 学习笔记️.zip

    这份"mysql 学习笔记️.zip"压缩包文件很可能是为了帮助初学者或者进阶者系统地学习MySQL而准备的资料。以下是基于这个主题的详细知识点讲解: 1. **MySQL基础**: - 数据库概念:理解数据库是什么,以及为什么...

    MYSQL数据库入门实战课程-重点笔记

    ### MySQL数据库入门实战课程-重点笔记 #### 一、数据库基础知识 1. **数据库定义**: - 数据库(Database, DB)是一种组织和存储数据的方式,以便用户能够方便地访问、管理和更新数据。 2. **SQL简介**: - SQL...

    MySQL学习笔记(含基础、运维、进阶三部分)

    通过这些笔记,你可以学习到如何使用 MySQL 进行数据库管理和开发。 MySQL 基础知识和概念 SQL 语句和操作 MySQL 数据库管理和优化 高级内容,如存储过程、触发器和索引优化等 MySQL锁、读写分离、分库分表等 实际...

    Mysql学习笔记.zip

    这份"Mysql学习笔记.zip"压缩包文件很可能包含了一系列关于MySQL的学习资料,如教程、笔记、示例代码或练习题,帮助用户深入理解并掌握MySQL的使用。 1. **MySQL基础** - 数据库概念:了解什么是数据库,以及...

    学习MySQL笔记 MySQL资源

    这份“学习MySQL笔记”资源可能是为了帮助用户深入理解MySQL的各个方面,包括安装、基本操作、查询语言、表设计、索引、事务处理、视图、存储过程、触发器、备份与恢复等。 首先,MySQL的安装是初学者需要掌握的第...

    一个学习MYSQL的笔记.zip

    这个“一个学习MYSQL的笔记.zip”压缩包很可能是包含了一系列关于MySQL学习资料的文档,如教程、笔记、示例代码等。下面我们将深入探讨MySQL的一些核心概念和技术。 1. **基础概念**: - **SQL**:Structured ...

    Oracle 触发器的使用小结

    - 监控表变动的触发器示例,说明了如何利用触发器监控表的增删改操作。 - IP限制用户登录的触发器实现,展示了如何通过触发器限制特定IP的登录尝试。 通过熟练掌握这些概念和用法,你可以有效地利用Oracle触发器...

    MySQL基础整理笔记

    ### MySQL基础整理笔记 #### 一、MySQL配置与基本操作 **1. 配置文件 my.ini** - **概述**:`my.ini` 文件是 MySQL 的主要配置文件,用于定义 MySQL 服务的各种参数和设置。 - **作用**:通过修改 `my.ini` 文件...

    10-12MySQL.zip

    这个“10-12MySQL.zip”压缩包可能包含一系列关于MySQL的教程、笔记、代码示例或者数据库相关项目。下面将详细讨论MySQL的核心知识点。 一、MySQL基础 1. 数据库与表:MySQL中的数据库是存储数据的逻辑单元,而表...

    MySQL笔记.rar

    以上是对MySQL笔记的简要概述,实际笔记中可能包含更详细的操作步骤、示例和最佳实践,帮助读者全面掌握MySQL的使用和管理。学习并熟练掌握这些知识点,将有助于你在数据库管理和开发工作中游刃有余。

Global site tag (gtag.js) - Google Analytics