mysql——mysql触发器

mysql触发器

一、创建触发器

        触发器(trigger)是个特殊的存储过程,不同的是,执行存储过程要使用CALL语句来调用,而触发器的执行不需要使用CALL语句来调用,也不需要手动启动,当一个预定义的事件发生时,就会被mysql自动调用。比如当对fruits表进行操作(INSERT、DELETE或UPDATE)时就会激活它执行。

        触发器可以查询其他表,而且可以包含复杂的SQL语句。它主要用于满足复杂的业务规则或要求。例如,可以根据客户当前的账户状态控制是否允许插入新订单。

1、创建只有一个执行语句的触发器

        创建一个触发器的语法如下:
在这里插入图片描述
        trigger_name表示触发器名称,用户自行指定;trigger_time表示触发时机,可以指定为before或after;trgger_even表示触发事件,包括INSERT、UPDATE和DELETE;tbl_name表示触发器的表名,即在哪张表上建立的触发器;trigger_stmt是触发器执行的语句。
在这里插入图片描述
        首先创建一个account表,表中有两个字段,分别为acct_num字段(定义为int类型)和amount字段(定义为浮点类型);其次创建一个名为ins_num的触发器,触发条件是向数据表account插入数据之前,对新插入的amount字段值进行求和计算。

2、创建有多个执行语句的触发器

在这里插入图片描述

二、查看触发器

        查看触发器是指查看数据库中已存在的触发器的定义、状态和语法信息等。可以通过命令来查看已经创建的触发器。有两种查看触发器的方法:SHOW TRIGGERS和在triggers表中查看触发器信息。

1、SHOW TRIGGERS语句查看触发器信息

在这里插入图片描述
注意:SHOW TRIGGERS语句查看当前创建的所有触发器信息,在触发器较少的情况下,使用该语句会很方便。如果要查看特定触发器的信息,可以直接从information_schema数据库的triggers表中查找。

2、在triggers表中查看触发器信息

在这里插入图片描述

三、触发器的使用

        触发程序是与表有关的命名数据库对象,当表上出现特定事件时,将激活该对象。在某些触发程序的用法中,可用于检查插入表中的值,或对更新涉及的值进行计算。

        触发程序与表相关,当对表进行INSERT、DELETE、UPDATE语句时,将激活触发程序。可以将触发程序设置为在执行语句之前或之后激活。

在这里插入图片描述

四、删除触发器

        使用DROP TRIGGER语句可以删除mysql中已经定义的触发器,基本语法如下:
在这里插入图片描述
        其中,schema_name表示数据库名称,是可选的。如果省略了schema,将从当前数据库中舍弃触发程序。trigger_name是要删除的触发器名称。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值