您的位置:首页 > 教程 > Mysql/MariaDB > MySQL触发器的使用详解

MySQL触发器的使用详解

2022-06-17 11:13:23 来源:易采站长站 作者:

MySQL触发器的使用详解

目录
1.为什么需要触发器2.触发器概述3.触发器的创建3.1语法3.2 案例演示4.查看触发器5.删除触发器总结

ezf站长之家-易采站长站-Easck.Com

1.为什么需要触发器

有一些表是互相关联的,比如说商品表和库存表,我们对商品表的数据进行操作,那么对应的库存表还得发生变化,这样才可以保证数据的完整。如果我们是自己手动维护的话,比较麻烦。ezf站长之家-易采站长站-Easck.Com

这个时候我们可以使用触发器,创建一个触发器,让商品信息数据的插入操作自动触发库存数据的插入操作等,这样我们就不需要担心因为忘记添加库存数据而导致数据丢失了。ezf站长之家-易采站长站-Easck.Com

ezf站长之家-易采站长站-Easck.Com

2.触发器概述

    MySQL是从5.0.2版本开始支持触发器的MySQL的触发器和存储过程一样都是嵌入到MySQL服务器的一段程序触发器是由某一个事件来触发某个操作,这些事件包括insert,delete,update事件若定义了触发程序,那么数据库执行这些语句的时候,就相当于事件发生,会自动激发触发器执行相应的操作如果对数据库中的表的数据进行插入等操作的时候,需要自动执行一些数据库逻辑的时候,我们可以用触发器来实现。

    ezf站长之家-易采站长站-Easck.Com

    3.触发器的创建

    ezf站长之家-易采站长站-Easck.Com

    3.1语法

    触发器是作用在表上的,比如说我们希望表A新增一条记录的时候就触发>

    for each row表明,每执行一次事件(insert,update或delete)就会触发一次触发器ezf站长之家-易采站长站-Easck.Com

    CREATE TRIGGER 触发器名称 ezf站长之家-易采站长站-Easck.Com
    {BEFORE|AFTER} {INSERT|UPDATE|DELETE} ON 表名 ezf站长之家-易采站长站-Easck.Com
    FOR EACH ROW ezf站长之家-易采站长站-Easck.Com
    触发器执行的语句块;ezf站长之家-易采站长站-Easck.Com

    说明:ezf站长之家-易采站长站-Easck.Com

    表名:表示触发器监控的对象。ezf站长之家-易采站长站-Easck.Com

    BEFORE|AFTER:表示触发的时间。BEFORE 表示在事件之前触发;AFTER 表示在事件之后触发。ezf站长之家-易采站长站-Easck.Com

    INSERT|UPDATE|DELETE:表示触发的事件。ezf站长之家-易采站长站-Easck.Com

      INSERT 表示插入记录时触发;UPDATE 表示更新记录时触发;DELETE 表示删除记录时触发。

      触发器执行的语句块:可以是单条SQL语句,也可以是由BEGIN…END结构组成的复合语句块。ezf站长之家-易采站长站-Easck.Com

      ezf站长之家-易采站长站-Easck.Com

      3.2>

      先准备表ezf站长之家-易采站长站-Easck.Com

      CREATE TABLE test_trigger (
      id INT PRIMARY KEY AUTO_INCREMENT,
      t_note VARCHAR(30)
      );
      
      
      CREATE TABLE test_trigger_log (
      id INT PRIMARY KEY AUTO_INCREMENT,
      t_log VARCHAR(30)
      );
      

      要求:创建触发器:创建名称为before_insert的触发器,向test_trigger数据表插入数据之前,向test_trigger_log数据表中插入before_insert的日志信息。ezf站长之家-易采站长站-Easck.Com

      ezf站长之家-易采站长站-Easck.Com

      ezf站长之家-易采站长站-Easck.Com

      ezf站长之家-易采站长站-Easck.Com

      4.查看触发器

      查看触发器是查看数据库中已经存在的触发器的定义,状态和语法信息等ezf站长之家-易采站长站-Easck.Com

      方式一:查看当前数据库的所有触发器的定义ezf站长之家-易采站长站-Easck.Com

      show triggers\G 注意,在SQLyog中,不能加上\G
      

      ezf站长之家-易采站长站-Easck.Com

      方式二:查看当前数据库中某一个触发器的定义ezf站长之家-易采站长站-Easck.Com

      show create trigger 触发器名
      

      ezf站长之家-易采站长站-Easck.Com

      方式三:从系统库information_schema的TRIGGERS表中查询“salary_check_trigger”触发器的信息ezf站长之家-易采站长站-Easck.Com

      SELECT * FROM information_schema.TRIGGERS;
      

      ezf站长之家-易采站长站-Easck.Com

      5.删除触发器

      触发器也是数据库对象,触发器也是用drop语句来删除ezf站长之家-易采站长站-Easck.Com

      drop trigger if exists 触发器名;
      

      ezf站长之家-易采站长站-Easck.Com

      总结

      到此这篇关于MySQL触发器使用的文章就介绍到这了,更多相关MySQL触发器内容请搜索易采站长站以前的文章或继续浏览下面的相关文章希望大家以后多多支持易采站长站!ezf站长之家-易采站长站-Easck.Com

      如有侵权,请联系QQ:279390809 电话:15144810328

相关文章

  • mysql 5.7.30安装配置方法图文教程

    mysql 5.7.30安装配置方法图文教程

    之前把服务器里面的MySQL卸了重装,安装mysql时未做总结,换新电脑,补上安装记录,安装的时候,找了些网友的安装记录,发现好多坑 截个图,作为笔记,也正好留给需要的朋友们。
    2019-01-03
  • MySQL5.6免安装版环境配置图文教程

    MySQL5.6免安装版环境配置图文教程

    MySQL是一个小巧玲珑但功能强大的数据库,目前十分流行。但是官网给出的安装包有两种格式,一个是msi格式,一个是zip格式的。很多人下了zip格式的解压发现没有setup.exe,面对一堆文
    2019-01-04
  • Linux下安装mysql-8.0.20的教程详解

    Linux下安装mysql-8.0.20的教程详解

    ** Linux下安装mysql-8.0.20 ** 环境介绍 操作系统:CentOS 7 mysql下载地址:https://dev.mysql.com/downloads/mysql/ 下载版本:mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz 卸载mysql 查看是否安装过mysql,命令:fin
    2020-05-24
  • linux环境下安装mysql数据库的详细教程

    linux环境下安装mysql数据库的详细教程

    1.安装数据库 1)yum -y install mysql-server(简单) yum命令自动从网上寻找mysql服务资源,下载至本地并完成安装 2)也可以自己在网上下载mysql服务,通过xftp传输至Linux系统,自己安装(一般安
    2020-06-20
  • MySQL8.0.20安装教程及其安装问题详细教程

    MySQL8.0.20安装教程及其安装问题详细教程

    原文地址:https://blog.csdn.net/m0_46579864/article/details/105981304 官网下载MySQL的安装包 1.下载链接如下: MySQL8.0.20版本 https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-20.html 其他版本:MySQL8.0.16版本
    2020-05-10
  • MySQL对数据库操作(创建、选择、删除)

    MySQL对数据库操作(创建、选择、删除)

    MySQL 创建数据库 我们可以在登陆 MySQL 服务后,使用 create 命令创建数据库,语法如下: CREATE DATABASE 数据库名; 以下命令简单的演示了创建数据库的过程,数据名为 RUNOOB: [root@host]# mysql
    2020-07-01
  • Linux系统MySQL8.0.19快速安装配置教程图解

    Linux系统MySQL8.0.19快速安装配置教程图解

    一、环境介绍 Linux系统使用yum安装MySQL需要从网上下载MySQL的一系列组件,这个过程非常耗时且有下载中断的可能,如果想要快速安装MySQL,可以先在网上将MySQL的离线包下载下来传到系
    2020-02-27
  • mysql 加了 skip-name-resolve不能链接数据库问题的解决方法

    mysql 加了 skip-name-resolve不能链接数据库问题的解决方法

    mysql 加了 skip-name-resolve不能链接的问题, 要确认 MySql 是否采用过主机名的授权 在 MySql Server 的配置文件 My.ini 中,增加如下两行: [mysqld] skip-name-resolve 它将禁止 MySql Server 对外部连接进
    2019-01-04