广告
返回顶部
首页 > 资讯 > 数据库 >mysql触发器原理与用法实例分析
  • 825
分享到

mysql触发器原理与用法实例分析

mysql触发器 2022-05-22 16:05:12 825人浏览 安东尼
摘要

本文实例讲述了Mysql触发器原理与用法。分享给大家供大家参考,具体如下: 本文内容: 什么是触发器 创建触发器 单条触发器语句 多条触发器语句 查看触发器 删除触

本文实例讲述了Mysql触发器原理与用法。分享给大家供大家参考,具体如下:

本文内容:

  • 什么是触发器
  • 创建触发器
    • 单条触发器语句
    • 多条触发器语句
  • 查看触发器
  • 删除触发器
  • 触发器的新旧记录引用

首发日期:2018-04-14


什么是触发器:

  • 触发器用来在某些操作之后,“自动”执行一些操作。(比如插入了新的学生信息,那么在班级表中应该修改学生数)。
  • 当insert delete update设置触发器之后,执行insert delete update操作就会自动触发设置的内容。
  • 一张表最大能有6个触发器(3*2,三种操作*两种时间(before|after))。


创建触发器:

  • 语法:create trigger 触发器名 before|after 事件 on 表名 for each row 触发器语句;
    • 触发器名建议为trigger_xxx,这样便于区分,触发器名不能重复。
    • before|after 代表触发器语句执行时间,如果是before,就是在insert delete update操作之前执行触发器语句;after就是之后。
    • 事件就是insert delete update操作中的一个。
    • for each row 是代表任何记录执行对应操作都会触发器。
    • 触发器语句就是触发器触发时要执行的语句。
    • 比如:下面是一个当插入新用户时,在用户创建时间表中插入一条新数据,是当前时间。
      
      create trigger trigger_addUserTime 
      before
       insert 
      on user_info 
      for each row 
      insert into usercreatetime(create_time) values(now());

create table user_info(
id int primary key auto_increment,
username varchar(20) not null,
passWord varchar(20) not null
)

create table usercreatetime(
id int primary key auto_increment,
create_time datetime
);

create trigger trigger_addUserTime before insert on user_info for each row insert into usercreatetime(create_time) values(now());

insert into user_info(username,password) values("admin","admin888");

select * from usercreatetime;

多条触发器语句情况:

  • 需要将多条语句包裹在begin end中
    • 比如:image
  • 但要注意,上述情况适用于非命令行模式(上面是在navicat中运行的),如果要命令行中执行需要修改命令结束符(mysql命令默认以“;”为语句结束符,如果我们不修改,那么键入一条触发器语句并以;结束时就会认为语句已经结束,然后就会因为语句不完整报错)【delimiter 自定义符号-- 临时修改语句结束符为指定符号】。
    • 【将结束符定义成$$就可以在触发器语句中使用;结束】
        
        delimiter $$ -- 一般定义成$$
        create trigger 触发器名 before|after 事件 on 表名 for each row 
        begin 
          语句;语句;
        end 
        $$
        
        delimiter ;
        -- 示例
        delimiter $$ -- 一般定义成$$
        create trigger trigger_addUserTime23 before insert on user_info for each row 
        begin 
        insert into usercreatetime(create_time) values(now());
        insert into usercreatetime(create_time) values(now());
        end 
        $$
        delimiter ;
    • imageimage


查看触发器:

  • 使用show triggers\G 查看所有触发器image
  • 数据库infORMation_schema中通过查看触发器表,来查看触发器:使用select * from  triggers\G;【当然可以以触发器名作为where条件查找数据】image
  • 查看触发器创建语句:show create trigger 触发器名\G;


删除触发器:

  • 使用drop trigger 触发器名;来删除触发器


触发器的新旧记录引用:

  • 对于某些情况有时候可能需要引用一下之前的数据,比如增加学生数需要知道之前的学生数
  • new是新插入的数据,old是原来的数据【插入的时候没有旧数据,删除没有新数据,更新既有旧又有新。(这里指的是事件类型)】
  • 使用odl\new.字段名来引用数据。(注意引用的是触发触发器(事件)的语句的数据)
  • 下面是一个例子:(当插入学生记录时,通过new.name获取新插入的学生的名字,然后将new.name插入到另一个表中)
      
      create table student(
      id int primary key auto_increment,
      name varchar(15) not null,
      gender varchar(15) not null
      );
      
      create table stu_info(
      name varchar(15) not null
      );
      
      create trigger addCount before insert on student 
      for each row 
      insert into stu_info values(new.name);
      
      insert into student(name,gender) values("lilei","male");
      select * from stu_info;

更多关于Mysql相关内容感兴趣的读者可查看本站专题:《MySQL查询技巧大全》、《MySQL事务操作技巧汇总》、《MySQL存储过程技巧大全》、《MySQL数据库相关技巧汇总》及《MySQL常用函数大汇总》

希望本文所述对大家MySQL数据库计有所帮助。

您可能感兴趣的文档:

--结束END--

本文标题: mysql触发器原理与用法实例分析

本文链接: https://www.lsjlt.com/news/9550.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • mysql触发器原理与用法实例分析
    本文实例讲述了mysql触发器原理与用法。分享给大家供大家参考,具体如下: 本文内容: 什么是触发器 创建触发器 单条触发器语句 多条触发器语句 查看触发器 删除触...
    99+
    2022-05-22
    mysql 触发器
  • mysql索引原理与用法实例分析
    本文实例讲述了mysql索引原理与用法。分享给大家供大家参考,具体如下: 本文内容: 什么是索引 创建索引 普通索引 唯一索引 全文索引 单列索引 多列索引 ...
    99+
    2022-05-29
    mysql 索引
  • mysql游标的原理与用法实例分析
    本文实例讲述了mysql游标的原理与用法。分享给大家供大家参考,具体如下: 本文内容: 什么是游标 创建游标 使用游标 首发日期:2018-04-18 什么是游标: 如果你前面看过mysql...
    99+
    2022-05-12
    mysql 游标
  • mysql累积聚合原理与用法实例分析
    本文实例讲述了mysql累积聚合原理与用法。分享给大家供大家参考,具体如下: 累积聚合为聚合从序列内第一个元素到当前元素的数据,如为每个员工返回每月开始到现在累积的订单数量和平均订单数量 行号问题有两个解决...
    99+
    2022-10-18
  • mysql自定义函数原理与用法实例分析
    本文实例讲述了mysql自定义函数原理与用法。分享给大家供大家参考,具体如下: 本文内容: 什么是函数 函数的创建 函数的调用 函数的查看 函数的修改 函数的删除 首发日期:2018-04...
    99+
    2022-05-26
    mysql 自定义函数
  • MySQL 触发器定义与用法简单实例
    本文实例讲述了MySQL 触发器定义与用法。分享给大家供大家参考,具体如下: 语法 CREATE TRIGGER 触发器名称  --触发器必须有名字,最多64个字符,可能后面会附有分隔符.它和My...
    99+
    2022-10-18
  • mysql 触发器语法与应用示例
    本文实例讲述了mysql 触发器语法与应用。分享给大家供大家参考,具体如下: 例子:创建触发器,记录表的增、删、改操作记录 //创建user表; DROP TABLE IF EXISTS `user`; CREA...
    99+
    2022-05-12
    mysql 触发器
  • MySQL与Oracle 差异比较之触发器的示例分析
    小编给大家分享一下MySQL与Oracle 差异比较之触发器的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!触发器编号类...
    99+
    2022-10-18
  • MySQL触发器的详细教学与实战分析
    所有知识体系文章,GitHub已收录,欢迎老板们前来Star! GitHub地址: https://github.com/Ziphtracks/JavaLearningmanual MySQL触发器 一、什么是触发器 触发...
    99+
    2020-08-28
    MySQL触发器的详细教学与实战分析
  • mysql 触发器创建与使用方法示例
    本文实例讲述了mysql 触发器创建与使用方法。分享给大家供大家参考,具体如下: 什么是触发器  触发器用来在某些操作之后/之前,“自动”执行一些操作。(比如插入了新的学生信息,那么在班级表中应该修改...
    99+
    2022-05-16
    mysql 触发器
  • mysql触发器之创建多个触发器操作的示例分析
    这篇文章将为大家详细讲解有关mysql触发器之创建多个触发器操作的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。这次记录的内容mysql 版本必须得是5.7.2+...
    99+
    2022-10-18
  • MySQL原理与优化的案例分析
    这篇文章主要介绍MySQL原理与优化的案例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!MySQL是目前互联网公司应用最广泛的数据库软件(DBMS),没有之一。小至初创公司,大至...
    99+
    2022-10-18
  • mysql中复制原理与实践应用的示例分析
    这篇文章主要介绍了mysql中复制原理与实践应用的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。复制功能是将一个mysql数据库上的...
    99+
    2022-10-18
  • mysql滑动订单问题原理与解决方法实例分析
    本文实例讲述了mysql滑动订单问题原理与解决方法。分享给大家供大家参考,具体如下: 先根据以下代码来创建表MonthlyOrders并导入一定的数据 CREATE TABLE MonthlyOrder...
    99+
    2022-10-18
  • MySQL中存储函数、触发器的示例分析
    这篇文章主要介绍了MySQL中存储函数、触发器的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 创建函数: 1....
    99+
    2022-10-19
  • Python实现的堆排序算法原理与用法实例分析
    本文实例讲述了Python实现的堆排序算法。分享给大家供大家参考,具体如下: 堆排序(Heapsort)是指利用堆这种数据结构所设计的一种排序算法。堆是一个近似完全二叉树的结构,并同时满足堆性质:即子结点的...
    99+
    2022-06-04
    算法 实例 原理
  • MySQL触发器简单用法示例
    本文实例讲述了MySQL触发器简单用法。分享给大家供大家参考,具体如下: mysql触发器和存储过程一样,是嵌入到mysql的一段程序,触发器是由事件来触发的,这些事件包括,INSERT,UPDATE,DE...
    99+
    2022-10-18
  • MySQL数据库的触发器和存储过程实例分析
    这篇文章主要介绍“MySQL数据库的触发器和存储过程实例分析”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“MySQL数据库的触发器和存储过程实例分析”文章能帮助大家解决问题。一、实验目的掌握某主流D...
    99+
    2023-07-02
  • 如何分析SQL Server数据库触发器概念、原理及案例
    如何分析SQL Server数据库触发器概念、原理及案例,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。概述触发器(trigge...
    99+
    2022-10-19
  • mysql触发器简介、创建触发器及使用限制分析
    本文实例讲述了mysql触发器简介、创建触发器及使用限制。分享给大家供大家参考,具体如下: 简介 SQL触发器是存储在数据库目录中的一组SQL语句。每当与表相关联的事件发生时,即会执行或触发SQL触发器,例...
    99+
    2022-10-18
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作