【引荐课程: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
指行级触发,关于受触发事宜影响的每一行都要激活触发器的行动。
注重:对同一个表雷同触发时候的雷同触发事宜,只能定义一个触发器。触发器只能竖立在永远表上,不能对暂时表竖立触发器。
例:竖立一个名为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怎样竖立触发器的细致内容,更多请关注ki4网别的相干文章!