加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 钦州站长网 (https://www.0777zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

mysql怎么创建触发器

发布时间:2022-12-20 11:16:41 所属栏目:MySql教程 来源:
导读:  MySQL创建触发器首先要创建触发器中待存储的表,然后再设定触发器被激活的时刻,最后在满足定义条件时触发,并执行触发器中定义的语句集合

  程序员必备接口测试调试工具:立即使用

  Apipost = Pos
  MySQL创建触发器首先要创建触发器中待存储的表,然后再设定触发器被激活的时刻,最后在满足定义条件时触发,并执行触发器中定义的语句集合
 
  程序员必备接口测试调试工具:立即使用
 
  Apipost = Postman + Swagger + Mock + Jmeter
 
  Api设计、调试、文档、自动化测试工具
 
  后端、前端、测试,同时在线协作,内容实时同步
 
  【推荐课程:MySQL教程】
 
  触发器
 
  触发器是MySQL的数据库对象之一,它与编程语言中的函数非常相似,都需要声明、执行等。但是触发器的执行不是由程序调用,也不是由手工启动,而是由事件来触发、激活从而实现执行。有点类似DOM中的事件。
 
  触发器的创建
 
  创建触发器的语法如下:
 
  CREATE <触发器名> < BEFORE | AFTER >
 
  ON <表名> FOR EACH Row<触发器主体>
  登录后复制
 
  语法解析
 
  触发器名
 
  指触发器名称,且在数据库中是唯一的(如果在某个特定数据库中建立需要加上数据库名称)
 
  INSERT | UPDATE | DELETE
 
  表示触发事件,用于指定激活触发器的语句的种类
 
  INSERT:将新行插入表时激活触发器
 
  DELETE: 从表中删除某一行数据时激活触发器
 
  UPDATE:更改表中某一行数据时激活触发器
 
  BEFORE | AFTER
 
  触发器被触发的时刻,表示触发器是在激活它的语句之前或之后触发。若希望验证新数据是否满足条件,则使用 BEFORE 选项;若希望在激活触发器的语句执行之后完成几个或更多的改变,则通常使用 AFTER 选项。
 
  表名
 
  与触发器相关联的表名,此表必须是永久性表,不能将触发器与临时表或视图关联起来。在该表上触发事件发生时才会激活触发器。同一个表不能拥有两个具有相同触发时刻和事件的触发器。
 
  触发器主体
 
  触发器动作主体,包含触发器激活时将要执行的 MySQL 语句。如果要执行多个语句,可使用 BEGIN…END 复合语句结构。
 
  FOR EACH ROW
 
  指行级触发,对于受触发事件影响的每一行都要激活触发器的动作。
 
  注意:对同一个表相同触发时间的相同触发事件,只能定义一个触发器。触发器只能创建在永久表上,不能对临时表创建触发器。
 
  例:创建一个名为double_salary的触发器
 
  double_salary
     -> AFTER INSERT ON tb_emp1
     -> FOR EACH ROW
     -> INSERT INTO tb_emp2
     -> VALUES (NEW.id,NEW.name,deptId,2*NEW.salary);
  Query OK, 0 rows affected (0.25 sec)
  登录后复制
 
  上述代码的含义是创建了一个double_salary的触发器mysql触发器,触发的条件是向数据表 tb_emp1中插入数据之后,再向数据表 tb_emp2 中插入相同的数据,并且 salary 为 tb_emp1 中新插入的 salary 字段值的 2 倍。
 

(编辑:PHP编程网 - 钦州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!