`
85977328
  • 浏览: 1904015 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

MySQL基础----触发器

阅读更多
废话不多说。自己看看吧.等以后有时间了再完善完善.^-^

CREATE TABLE `vardata` (
  `Id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) DEFAULT NULL,
  `time` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  `data` double(15,5) DEFAULT '-601.00000',
  PRIMARY KEY (`Id`,`time`),
  UNIQUE KEY `unique` (`name`,`time`)
)

CREATE TABLE `vardata_compute` (
  `Id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) DEFAULT NULL,
  `time` datetime DEFAULT NULL,
  `data` double(15,5) DEFAULT NULL,
  PRIMARY KEY (`Id`)
) 

DROP TRIGGER IF EXISTS trigger_insert_59data;
CREATE TRIGGER trigger_insert_59data 
AFTER INSERT 
ON vardata 
FOR EACH ROW 
BEGIN
     DECLARE time_59 DateTime;              
     SET time_59 = NEW.time-INTERVAL 1 SECOND; 
     IF MINUTE(NEW.time)=0 AND SECOND(NEW.time)=0 THEN
        INSERT INTO vardata_compute SET name=NEW.name,time=time_59,data=NEW.data;  
     END IF;   
END;

DROP TRIGGER IF EXISTS trigger_delete_59data;
CREATE TRIGGER trigger_delete_59data 
AFTER DELETE 
ON vardata 
FOR EACH ROW 
BEGIN
     DECLARE time_59 DateTime;     
     SET time_59 = OLD.time-INTERVAL 1 SECOND; 
     IF MINUTE(OLD.time)=0 AND SECOND(OLD.time)=0 THEN     
        DELETE FROM vardata_compute WHERE time=time_59 AND name=old.name;
     END IF;   
END;

DROP TRIGGER IF EXISTS trigger_update_59data;
CREATE TRIGGER trigger_update_59data 
AFTER UPDATE 
ON vardata 
FOR EACH ROW 
BEGIN
     DECLARE time_59 DateTime;     
     SET time_59 = NEW.time-INTERVAL 1 SECOND; 
     IF MINUTE(NEW.time)=0 AND SECOND(NEW.time)=0 THEN          
        UPDATE vardata_compute SET data=NEW.data WHERE time=time_59 AND name=NEW.name;
     END IF;   
END;
1
2
分享到:
评论

相关推荐

    第一章 MySQL基础-简单查询

    第一章 MySQL基础-简单查询 数据库的概念 数据库: 存储数据的大型仓库, 数据库由表,视图,触发器,函数,存储过程,事件等组成的. 表是存储数据的核心. 数据库服务器: 软件服务器,不是硬件服务器, 安装mysql之后启动的...

    mysql基础-视图、存储函数、存储过程、触发器.pdf

    - INSTEAD OF类型的触发器不在MySQL中支持。 - **触发器的创建与管理**: - **创建触发器**: ```sql CREATE TRIGGER trigger_name trigger_time trigger_event ON table_name FOR EACH ROW BEGIN -- SQL ...

    mysql-essential-5.0.45-win32 + 安装手顺

    这个版本可能不包含最新的功能和安全更新,但对于学习基础操作和理解MySQL工作原理来说,仍然非常有价值。 安装过程分为以下几个步骤: 1. **下载与解压**:首先,你需要下载“mysql-essential-5.0.45-win32.msi”...

    mysql-boost-5.7.26.tar.gz

    综上所述,`mysql-boost-5.7.26.tar.gz`提供了一个强大的数据库管理系统,但安装和使用需要一定的Linux基础和数据库管理知识。正确编译和配置MySQL 5.7.26,将为您的应用程序提供可靠且高性能的数据存储解决方案。

    mysql-5.7.31-linux-glibc2.12-x86_64.tar.gz

    这里我们将深入探讨MySQL 5.7的一些关键特性和在Linux环境下安装与管理MySQL的基础知识。 MySQL 5.7版是一个重要的里程碑,因为它引入了许多新功能和性能改进。首先,InnoDB存储引擎得到了显著优化,支持更高的事务...

    mysql-5.7.23-win32.zip

    在使用MySQL时,了解SQL语言的基础是必不可少的,包括数据定义(DDL)、数据操纵(DML)、数据查询(DQL)和数据控制(DCL)语句。同时,熟悉如何创建表、插入数据、更新数据、删除数据、建立索引、编写存储过程和...

    mysql-connector-java-5.0.5.jar

    首先,了解JDBC是理解MySQL Connector/J的基础。JDBC是Java中用于访问各种类型数据库的标准接口,由Sun Microsystems(现在是Oracle公司的一部分)开发。通过JDBC,开发者可以编写与数据库无关的代码,只需更换不同...

    mysql-essential-5.0.45

    2. **SQL标准兼容性**: MySQL 5.0增强了对SQL92和SQL99标准的遵循,包括视图、存储过程、触发器等高级SQL特性。 3. **性能提升**: 5.0.45版本对查询优化器进行了改进,提升了查询性能,并优化了内存管理,以减少...

    mysql-essential-5.1.45-win32

    "mysql-essential-5.1.45-win32" 是一个针对Windows 32位系统的MySQL基础版安装包,版本号为5.1.45。这个版本包含了运行MySQL服务器、客户端工具以及一些基本管理工具所必需的组件。 在MySQL 5.1版本中,引入了许多...

    mysql-connector-java-5.1.39.0.zip

    在实际开发中,为了更好地管理和优化数据库操作,通常会使用像Hibernate、MyBatis这样的ORM框架,它们在MySQL Connector/J的基础上提供了更高级别的抽象,简化了数据库交互。不过,理解MySQL Connector/J的基本原理...

    MySQL-超详细数据库触发器教程

    MySQL数据库的触发器是数据库管理系统中的一个重要特性,它允许在特定的数据操作(如INSERT、UPDATE、DELETE)发生时自动执行预定义的SQL语句。触发器可以用来维护数据的完整性和一致性,执行复杂的业务逻辑,或者...

    mysql-5.5.6-rc.tar.gz_mysql 5.6_mysql vc_mysql5.5_mysql5.6

    这些源码可以帮助开发者深入了解MySQL的内部工作原理,学习如何编写存储过程、触发器,甚至定制新的存储引擎。对于那些希望对MySQL进行二次开发或研究数据库系统的学者和工程师来说,这是一个宝贵的资源。 总的来说...

    mysql5.7-rpm.zip

    1. **mysql-community-server-5.7.34-1.el7.x86_64.rpm**:这是MySQL服务器的核心组件,包含了数据库引擎、SQL解析器、存储过程、触发器等核心功能。安装此包后,你可以启动MySQL服务,并创建和管理数据库。版本号`...

    mysql-5.0.96-win64.zip

    - MySQL 5.0 是 MySQL 的一个重大更新,引入了对存储过程、触发器、视图、事务支持等高级数据库特性。 - 支持 InnoDB 存储引擎,提供行级锁定和事务处理能力,增强了并发性能和数据一致性。 - 引入了分区表功能,...

    mysql触发器教程

    ### MySQL触发器教程知识点详解 #### 一、MySQL触发器简介 MySQL触发器是一种存储在数据库中的特殊类型的存储过程,当特定的事件(如插入、更新或删除数据)发生时自动执行。它们允许用户定义一系列复杂的规则和...

    mysql-standard-4.1.20-pc-linux-gnu-i686.tar.gz

    1. **SQL增强**:MySQL 4.1引入了更强大的SQL支持,包括复杂的查询子句、存储过程、视图、触发器等,使得开发人员能够执行更复杂的数据操作和管理任务。 2. **改进的查询优化器**:此版本对查询优化器进行了升级,...

    mysql-essential-4122-win32

    "mysql-essential-4122-win32" 提供的是针对Windows 32位系统的MySQL基础组件,版本号为4.1.22。这个压缩包内包含了一个安装文件"mysql-essential-4122-win32.msi",用于在Windows环境下安装MySQL。 MySQL 4.1.22是...

    mysql-5.5.57-winx64.msi.zip

    MySQL 5.5版在前一版本的基础上做了许多增强和改进,以提升性能和功能。以下是关于MySQL 5.5的一些关键知识点: 1. **InnoDB存储引擎**:MySQL 5.5默认使用InnoDB存储引擎,提供事务处理、行级锁定以及外键支持,...

    mysql-5.0.22-win32.zip

    总结来说,MySQL 5.0.22-win32 是一个针对 Windows 32 位系统的数据库管理系统,包含了丰富的功能和工具,适合学习数据库基础和历史,但对于新项目或高安全性需求,应选择更现代的 MySQL 版本。通过执行提供的 Setup...

    mysql-essential-6.0.11-alpha-winx64.msi

    4. **触发器和存储过程**:MySQL 6.0支持创建触发器和存储过程,增强了数据库的业务逻辑处理能力,使得复杂的数据操作可以在数据库层面完成,减少了应用程序的负担。 5. **XML支持**:增加了对XML文档的内置支持,...

Global site tag (gtag.js) - Google Analytics