• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

mysql怎么创建触发器

mysql 搞代码 4年前 (2022-01-09) 33次浏览 已收录 0个评论

MySQL创建触发器首先要创建触发器中待存储的表,然后再设定触发器被激活的时刻,最后在满足定义条件时触发,并执行触发器中定义的语句集合

【推荐课程:MySQL教程

触发器

触发器是MySQL的数据库对象之一,它与编程语言中的函数非常相似,都需要声明、执行等。但是触发器的执行不是由程序调用,也不是由手工启动,而是由事件来触发、激活从而实现执行。有点类似DOM中的事件。

触发器的创建

创建触发器的语法如下:

CREATE <触发器名> < BEFORE | AFTER ><INSERT | UPDATE | DELETE >ON <表名> FOR EACH Row<触发器主体>

语法解析

触发器名

指触发器名称,且在数据库中是唯一的(如果在某个特定数据库中建立需要加上数据库名称)

INSERT | UPDATE | DELETE

表示触发事件,用于指定激活触发器的语句的种类

INSERT:将新行插入表时激活触发器

DELETE: 从表中删除某一行数据时激活触发器

UPDATE:更改表中某一行数据时激活触发器

BEFORE | AFTER

触发器被触发的时刻,表示触发器是在激活它的语句之前或之后触发。若希望验证新数据是否满足条件,则使用 BEFORE 选项;若希望在激活触发器的语句执行之后完成几个或更多的改变,则通常使用 AFTER 选项。

表名

与触发器相关联的表名,此表必须是永久性表,不能将触发器与临时表或视图关联起来。在该表上触发事件发生时才会激活触发器。同一个表不能拥有两个具有相同触发时刻和事件的触发器。

触发器主体

触发器动作主体,包含触发器激活时将要执行的 MySQL 语句。如果要执行多个语句,可使用 BEGIN…END 复合语句结构。

FOR EACH ROW

指行级触发,对于受触发事件影响的每一行都要激活触发器的动作。

注意本文来源gaodai#ma#com搞*!代#%^码网%:对同一个表相同触发时间的相同触发事件,只能定义一个触发器。触发器只能创建在永久表上,不能对临时表创建触发器。

例:创建一个名为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的触发器,触发的条件是向数据表 tb_emp1中插入数据之后,再向数据表 tb_emp2 中插入相同的数据,并且 salary 为 tb_emp1 中新插入的 salary 字段值的 2 倍。

总结:以上就是本篇文章的全部内容了,希望对大家有所帮助。

以上就是mysql怎么创建触发器的详细内容,更多请关注搞代码gaodaima其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:mysql怎么创建触发器

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址