`

mysql触发器,获取被触发的行

阅读更多

今天用到mysql的触发器,需要将被触发的行的数据沉淀到另一张表中,网上查了下资料,在此做个汇总,触发器的基本知识请参考:http://zhangjq5.iteye.com/admin/blogs/1893926

触发器建立在表的行上面,相当于对每行做监听,主要负责监听insert、delete和update操作,以update为例,

1、创建源数据表:

CREATE TABLE IF NOT EXISTS `test_trigger` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `insert_name` varchar(50) DEFAULT NULL,
  `insert_desc` varchar(50) DEFAULT NULL,
  `create_time` date DEFAULT NULL,
  `time_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='触发器测试';

 

 

2、创建目标数据表:

CREATE TABLE IF NOT EXISTS `test_update` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(50) DEFAULT NULL,
  `create_time` date DEFAULT NULL,
  `time_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='更新test_trigger后,将数据同步到当前表';

 

3、触发器:

DROP TRIGGER IF EXISTS test_trigger_update;
CREATE test_trigger_update

AFTER update ON test_trigger

FOR EACH ROW
BEGIN
   insertintotest_update(id,name,create_time)values(old.id,new.insert_name,curdate());
END
 
这样,执行test_trigger表的update命令后,表test_update就会有新的数据插入。我们可以看到insert语句中有old和new两个对象,这两个对象分别对应刚update的表test_trigger所触发的行,其中old对应更新前的行,new对应更新后的行,对于insert和delete也是一样的。
分享到:
评论

相关推荐

    mysql触发器之创建多个触发器操作实例分析

    本文实例讲述了mysql触发器之创建多个触发器操作。分享给大家供大家参考,具体如下: 这次记录的内容mysql 版本必须得是5.7.2+的哈,之前的会不好使的。废话不多说,咱们开始正文哈。 在mysql 5.7.2+版本之前,我们...

    mysql触发器之触发器的增删改查操作示例

    MySQL触发器是数据库管理系统提供的一种机制,用于在特定的数据操作(如INSERT、UPDATE、DELETE)发生之前或之后自动执行预定义的SQL语句。这些触发器可以用来实现复杂的业务规则,确保数据的一致性和完整性,或者...

    mysql触发器

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

    MYSQL触发器教程.doc

    MySQL触发器是数据库管理系统中的一种重要机制,它允许在特定的数据库操作(如INSERT、UPDATE、DELETE)发生前后自动执行一段预定义的SQL代码。触发器的引入是为了满足更复杂的数据完整性需求,提供数据验证、业务...

    mysql触发器+存储过程

    文件“MySQL存储过程.pdf”和“OReilly.MySQL.Stored.Procedure.Programming.rar”可能会提供关于如何创建、调用和管理MySQL存储过程的详细指南,而“MySQL触发器.rar”则可能包含触发器的创建、使用和优化方面的...

    MySQL触发器.rar

    MySQL触发器是数据库管理系统中的一个重要概念,主要用于在特定的数据操作(如INSERT、UPDATE或DELETE)发生时自动执行预定义的SQL语句。这些语句可以是复杂的业务逻辑,用于实现数据验证、同步或其他自动化任务。...

    mysql触发器使用

    在深入探讨MySQL触发器的使用之前,我们先来理解一下什么是触发器以及它在数据库管理中的作用。触发器是数据库中一种特殊的存储过程,当特定的事件(如INSERT、UPDATE或DELETE操作)在指定的表上发生时自动执行。...

    mysql触发器文档

    ### MySQL触发器知识点详解 #### 引言 MySQL触发器是一种服务器端的程序,它可以响应特定的数据库事件(如插入、更新或删除记录)而自动执行。触发器自MySQL 5.0版本起被引入,这标志着MySQL在功能性上的一大进步,...

    mysql触发器教程

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

    mysql中触发器使用详解.docx

    MySQL中的触发器是一种数据库对象,它与特定的表相关联,并在对表执行INSERT、UPDATE或DELETE操作之前或之后自动执行预定义的SQL语句。触发器的主要作用是增强数据库的逻辑控制,确保数据完整性、记录操作日志以及...

    MySQL触发器.pdf

    ### MySQL触发器详解 #### 引言 MySQL作为一款广泛使用的开源关系型数据库管理系统,在其5.0版本中引入了许多重要的新特性,其中最引人注目的是存储过程、触发器、视图等高级功能的加入。本文将重点讨论MySQL 5.0...

    Mysql触发器介绍

    ### MySQL触发器详解 #### 一、引言 MySQL 的触发器与存储过程类似,都是内嵌于数据库的一种编程机制。触发器的概念最早出现在 MySQL 5.0 版本中,这一特性使得开发者能够编写自动化的数据库操作逻辑,用于响应...

    mysql触发器.zip

    MySQL触发器是数据库管理系统中的一个重要特性,它允许在特定的数据库操作(如INSERT、UPDATE或DELETE)发生之前或之后执行自定义的SQL代码。这些自动执行的代码块可以用来实现复杂的业务逻辑,确保数据的一致性和...

    mysql触发器使用实例

    MySQL触发器是数据库管理系统中的一个重要特性,它允许在特定的数据操作(如INSERT、UPDATE或DELETE)发生时自动执行预定义的SQL语句。这为数据库的业务规则提供了强大的支持,可以确保数据的一致性和完整性。以下是...

    实验九MySQL的触发器.pdf

    通过这个实验,学生可以深入理解MySQL触发器的工作原理,以及如何在实际环境中应用它们来增强数据库的管理和安全性。实验报告应包含实验步骤、观察结果、问题分析和总结,以巩固理论知识和实践技能。

    MYSQL触发器在PHP项目中用来做信息备份、恢复和清空

    - 触发器是MySQL数据库中的一种特殊类型的存储过程,它在用户执行DML(Data Manipulation Language,如INSERT, UPDATE, DELETE)操作时自动触发。 - 触发器分为三种类型:BEFORE INSERT、AFTER INSERT、BEFORE ...

    mysql触发器.pdf

    **MySQL触发器概念** 触发器是一种特殊类型的存储程序,它会在数据库表上的特定事件发生时自动执行。这些事件包括 INSERT、UPDATE 和 DELETE 操作。触发器可以在行级上执行,也就是说,它们可以对表中的每一行受到...

    MySQL 5.0 触发器.rar

    触发器由以下几个部分组成:触发事件(如INSERT、UPDATE或DELETE)、触发时间(BEFORE或AFTER)、触发器名、关联的表以及触发器体(即执行的SQL语句)。例如,创建一个名为`trg_after_insert`的触发器,当向`...

Global site tag (gtag.js) - Google Analytics