热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

MySQL触发器使用

什么是触发器???简单的来说就是当执行某条sql语句的时候,会触发另外一条sql语句的执行!触发器使用场景:a.逻辑不是很复杂的sqlb.两个表具有一定的关联性,一个
  1. 什么是触发器???
    简单的来说就是当执行某条sql语句的时候,会触发另外一条sql语句的执行!

  2. 触发器使用场景:
    a. 逻辑不是很复杂的sql
    b. 两个表具有一定的关联性,一个表数据改变,另外一个表数据也会随之变化
    c. 不适合做太复杂的操作! 一般复杂的操作最好是程序员自己写代码去实现,或者使用mysql的存储过程,

  3. 触发器创建

    create trigger [trigger name] [operate type] on [table name] for each row [sql statment]

举个例子:

create trigger test_trigger on user for each row update user_points set total points = 100;

四. 删除触发器

drop trigger trigger_name;

五. 查看已经创建的触发器

show triggers; //显示所有的触发器

六. 实例
比如有这么一个需求: 一个文章表,一个文章的点赞表。 一篇文章可以被多个人点赞,那么我们要知道篇文章的点赞书,最简单的做法就是在文章表中给一个总的点赞数的字段,这样就不用去统计点赞表跟这篇文章相关联的点赞记录。

创建表 article

create table article(
id int not null ,
title varchar(200) not null,
total_good int not null default 0,
);

创建点赞表

create table good(
id int not null ,
user_id int null
aid int not null comment '关联的文章表的id',
);
insert into article values(1,'hi this is test',0);

创建触发器

create trigger good_ai after insert on good for each row update article set total_good = old.total_good + 1 where good.aid = article.id

推荐阅读
  • Maven + Spring + MyBatis + MySQL 环境搭建与实例解析
    本文详细介绍如何使用MySQL数据库进行环境搭建,包括创建数据库表并插入示例数据。随后,逐步指导如何配置Maven项目,整合Spring框架与MyBatis,实现高效的数据访问。 ... [详细]
  • 本文详细介绍了PostgreSQL与MySQL在SQL语法上的主要区别,包括如何使用COALESCE替代IFNULL、金额格式化的方法、别名处理以及日期处理等关键点。 ... [详细]
  • HTML:  将文件拖拽到此区域 ... [详细]
  • 本文详细探讨了在Web开发中常见的UTF-8编码问题及其解决方案,包括HTML页面、PHP脚本、MySQL数据库以及JavaScript和Flash应用中的乱码问题。 ... [详细]
  • 本文详细介绍了Oracle 11g中的创建表空间的方法,以及如何设置客户端和服务端的基本配置,包括用户管理、环境变量配置等。 ... [详细]
  • 二维码的实现与应用
    本文介绍了二维码的基本概念、分类及其优缺点,并详细描述了如何使用Java编程语言结合第三方库(如ZXing和qrcode.jar)来实现二维码的生成与解析。 ... [详细]
  • 如何将955万数据表的17秒SQL查询优化至300毫秒
    本文详细介绍了通过优化SQL查询策略,成功将一张包含955万条记录的财务流水表的查询时间从17秒缩短至300毫秒的方法。文章不仅提供了具体的SQL优化技巧,还深入探讨了背后的数据库原理。 ... [详细]
  • HTML前端开发:UINavigationController与页面间数据传递详解
    本文详细介绍了如何在HTML前端开发中利用UINavigationController进行页面管理和数据传递,适合初学者和有一定基础的开发者学习。 ... [详细]
  • 本文探讨了如何通过优化 DOM 操作来提升 JavaScript 的性能,包括使用 `createElement` 函数、动画元素、理解重绘事件及处理鼠标滚动事件等关键主题。 ... [详细]
  • 本文介绍了一种使用SQL Server存储过程来实现基于单一条件的高效分页查询的方法。通过示例代码,详细说明了如何构建和执行这种分页查询。 ... [详细]
  • 本文探讨了在SQL Server中处理几何类型列时遇到的INTERSECT操作限制,并提供了解决方案,包括通过转换数据类型和使用额外表结构的方法。 ... [详细]
  • 本文探讨了如何通过Service Locator模式来简化和优化在B/S架构中的服务命名访问,特别是对于需要频繁访问的服务,如JNDI和XMLNS。该模式通过缓存机制减少了重复查找的成本,并提供了对多种服务的统一访问接口。 ... [详细]
  • 本文介绍如何使用JavaScript中的for循环来创建一个九九乘法表,适合初学者学习循环结构的应用。 ... [详细]
  • 在处理大量联系人数据的批量插入操作时,发现现有方法的执行效率低下,尤其是在处理数十条记录以上时,与导出操作的速度形成鲜明对比。本文将探讨如何通过代码优化来提升批量插入联系人的效率。 ... [详细]
  • 在处理大数据量的SQL分页查询时,通常需要执行两次查询来分别获取数据和总记录数。本文介绍了一种优化方法,通过单次查询同时返回分页数据和总记录数,从而提高查询效率。 ... [详细]
author-avatar
敬炜8965肀
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有