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

MySQL的经典用法(五)----触发器(转)

阅读更多
Sql代码 
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`)   
)   

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`)
) 
Sql代码 
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;  

分享到:
评论

相关推荐

    mysql-connector-java-5.1.37-jar

    5. 兼容MySQL服务器的新特性:如支持分区表、存储过程、触发器等。 使用"mysql-connector-java-5.1.37.jar"的步骤通常如下: 1. 将JAR文件添加到Java项目的类路径中,可以是构建工具(如Maven或Gradle)的依赖,也...

    mysql-connector-java-5.1.22-bin.jar

    此外,MySQL数据库还支持多种其他特性,如事务管理、存储过程、触发器、视图、索引等,这些都可以通过Java应用程序利用`mysql-connector-java`驱动进行操作。对于大型企业级应用,还可能涉及到连接池(如C3P0、...

    mysql-connector-java-5.1.46.jar

    2. **连接数据库**:使用`java.sql.DriverManager`类的`getConnection()`方法建立到MySQL服务器的连接。你需要提供数据库URL、用户名和密码作为参数。 3. **创建Statement或PreparedStatement**:通过连接对象创建`...

    mysql-connector-odbc-5.3.4-win32.msi

    5. **特性支持**:支持 MySQL 的各种特性,如存储过程、触发器、视图以及事务处理。 6. **多语言支持**:MySQL Connector/ODBC 可以处理多种字符集,适应全球化的应用需求。 在安装 `mysql-connector-odbc-5.3.4-...

    mysql-connector-java-5.1.0-bin.jar

    - 支持MySQL 5.0及更高版本的特性,如存储过程、触发器、视图等。 - 支持JDBC 4.0规范,包括Java 6中的新特性。 - 提供了连接池功能,通过`com.mysql.jdbc.jdbc2.optional.MysqlConnectionPoolDataSource`类实现,...

    mysql-connector-java-5.1.40.tar

    此外,了解MySQL的基本语法和数据类型、索引、视图、触发器、存储过程等概念对于有效利用MySQL Connector/J进行开发至关重要。同时,掌握数据库设计原则,如范式理论,有助于创建高效、可扩展的数据库结构。 在实际...

    mysql-connector-java-5.1.25.jar免费下载

    此外,`mysql-connector-java-5.1.25.jar`还包含了对MySQL特定特性的支持,如存储过程、触发器、视图、用户定义函数(UDF)等。它还支持MySQL的一些高级功能,如分区表、复制、InnoDB事务隔离级别等。 值得注意的是,...

    mysql-connector-odbc-5.1.13-win32

    MySQL Connector/ODBC 是 MySQL 数据库管理系统与 Microsoft ODBC(开放数据库连接)接口之间的桥梁,使得 Windows 上的应用程序...了解和掌握它的安装、配置和使用方法,有助于提高开发效率,实现跨平台的数据访问。

    mysql-connector-java-5.1.15-bin.jar

    当你在Java代码中使用`DriverManager.getConnection()`方法建立数据库连接时,这个JAR中的类就会被加载并执行相应的任务,如解析URL、验证用户凭证、建立网络连接等。 在5.1.15这个版本中,可能会包含以下特性: 1....

    mysql-connector-java-5.1.46.zip

    8. **兼容性**:此版本5.1.46支持MySQL 5.x版本的大部分特性,包括InnoDB存储引擎、视图、触发器、存储过程等。但请注意,对于MySQL 8.0或更高版本,可能需要更新到更现代的Connector/J版本,如8.x。 9. **安全性**...

    mysql-server-mysql-5.7.36.tar.gz

    `mysql-server-mysql-5.7.36.tar.gz` 是MySQL服务器的一个特定版本,版本号为5.7.36,它以tar.gz格式打包,这是一种在Linux和Unix-like操作系统中常见的归档和压缩方法。 MySQL 5.7版本是MySQL发展中的一个重要里程...

    mysql-connector-java-5.08-bin.jar

    MySQL是世界上最受欢迎的关系型数据库管理系统之一,而`mysql-connector-java-5.08-bin.jar`是MySQL官方提供的Java数据库连接器(JDBC)驱动,它使得Java应用程序能够与MySQL数据库进行交互。在这个详细的解释中,...

    mysql-connector-java-8.0.17.zip

    8. 高级特性:包括连接池管理、XA分布式事务支持、JNDI数据源、以及对MySQL特定功能如存储过程、触发器、用户定义函数(UDF)和视图的支持。 9. 安全性:MySQL Connector/J支持SSL连接,可以提供安全的加密通信,保护...

    mysql-connector-java-5.1.15.jar

    MySQL是世界上最受欢迎的关系型数据库管理系统之一,而`mysql-connector-java-5.1.15.jar`是一个关键的组件,它是MySQL提供的一款Java数据库连接器(JDBC Driver),用于在Java应用程序中与MySQL数据库进行通信。...

    MySQL触发器.rar

    在"MySQL触发器.pdf"这本书籍教程中,你可能会深入学习到触发器的详细用法,包括如何创建、修改和删除触发器,以及如何在实际项目中有效利用它们。"下载说明.txt"可能包含了获取更多资源的指引,而"A5下载- 更全的...

    mysql-connector-java-6.0.6.jar

    MySQL Connector/J 6.0.6还支持一些高级特性,比如JTA(Java Transaction API)事务管理、JPA(Java Persistence API)集成、以及MySQL特定的功能,如存储过程、触发器和用户定义函数(UDF)。了解这些特性可以帮助...

    mysql-connector-java-5.0.5.jar

    此外,它还支持最新的MySQL特性,比如视图、触发器、分区表等。 需要注意的是,随着时间的推移,MySQL数据库和JDBC驱动都有了很大的发展。新的版本修复了已知的安全漏洞,增加了对新特性的支持,提升了性能。因此,...

    mysql-connector-java-5.1.39.0.zip

    MySQL Connector/J是MySQL数据库与Java应用程序之间的重要桥梁,它是一个实现了Java Database Connectivity (JDBC) API的...不过,理解MySQL Connector/J的基本原理和使用方法对于任何Java开发者来说都是至关重要的。

    [数据库] Navicat for MySQL触发器更新和插入操作1

    5. **使用Navicat for MySQL创建触发器**: - Navicat 提供了图形化的界面来创建和管理触发器,但推荐直接编写SQL语句以确保精确控制触发器的行为。 6. **注意事项**: - 创建触发器时,通常会在开始时加入判断,...

Global site tag (gtag.js) - Google Analytics