MySQL触发器然后使用

网友投稿 296 2023-11-26

MySQL触发器然后使用

这篇“MySQL触发器然后使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“MySQL触发器然后使用”文章吧。

触发器

一、触发器的介绍

MySQL触发器然后使用

触发器,就是⼀种特殊的存储过程。触发器和存储过程⼀样是⼀个能够完成特定功能、存储

数据库服务器上的SQL⽚段,但是触发器⽆需调⽤,当对数据表中的数据执⾏DML操作时

⾃动触发这个SQL⽚段的执⾏,⽆需⼿动调⽤。

在MySQL,只有执⾏insert\delete\update操作才能触发触发器的执⾏。

二、 触发器使用1.创建触发器create trigger tri_name   -- tri_name:触发器别名 <before|after-- 定义触发时机 <insert|delete|update> -- 定义DML类型 ON<table_name>-- 要触发的表 for each <row|statement> -- for each row 声明为⾏级触发器(操作的每⼀条记录就触发触发器执⾏⼀次) -- for each statement 声明语句级触发器(触发动作体执行一次) begin -- 当只有一句sql语句时,begin...end 可以省略 sql_statement  -- 进行触发器对应的DML类型的操作 end; #示例 -- 创建触发器:当学⽣信息表发⽣添加操作时,则向⽇志信息表中记录⼀条⽇志 create trigger tri_test1 after insert on students for each row insert intostulogs(time,log_text) values(now(), concat(添 加,NEW.stu_num,学⽣信息));2.查看触发器#查看全部触发器 show triggers; #查看触发器的创建语句 show create trigger 触发器名字;3.删除触发器

触发器不能修改,只能删除

drop trigger  触发器名字;三、 NEW与OLD

触发器⽤于监听对数据表中数据的insert、delete、update操作,在触发器中通常处理

⼀些DML的关联操作;我们可以使⽤ NEW 和 OLD 关键字在触发器中获取触发这个触发器

的DML操作的数据

NEW : 在触发器中⽤于获取insert操作添加的数据、update操作修改后的记录

OLD:在触发器中⽤于获取delete操作删除前的数据、update操作修改前的数据

1.NEW的使用#insert操作中:NEW表示添加的新记录 create triggertri_test1after insert on students for each row insert into stulogs(time,log_text) values(now(), concat(添 加,NEW.stu_num,学⽣信息)); #update操作中:NEW 表示修改后的数据 -- 创建触发器 : 在监听update操作的触发器中,可以使⽤NEW获取修改后的数据 create triggertri_test2after update on students for each row insert into stulogs(time,log_text) values(now(), concat(修改学⽣信息 为:,NEW.stu_num,NEW.stu_name));2.OLD的使用#delete操作中:OLD表示删除的记录 create trigger tri_test3 after delete onstudentsfor each row insert into stulogs(time,log_text) values(now(), concat(删 除,OLD.stu_num,学⽣信息));  #update操作中:OLD表示修改前的记录 create trigger tri_test2 after update on students for each row insert into stulogs(time,log_text) values(now(), concat(将学⽣姓名从 【,OLD.stu_name,】修改为【,NEW.stu_name,));四、10.4 触发器使⽤总结1.优点

触发器是⾃动执⾏的,当对触发器相关的表执⾏响应的DML操作时⽴即执⾏;

触发器可以实现表中的数据的级联操作(关联操作),有利于保证数据的完整性;

触发器可以对DML操作的数据进⾏更为复杂的合法性校验

2.缺点

使⽤触发器实现的业务逻辑如果出现问题将难以定位,后期维护困难;

⼤量使⽤触发器容易导致代码结构杂乱,增加了程序的复杂性;

当触发器操作的数据量⽐较⼤时,执⾏效率会⼤⼤降低。

3.使⽤建议

在互联⽹项⽬中,应避免适应触发器;

对于并发量不⼤的项⽬可以选择使⽤存储过程,但是在互联⽹引⽤中不提倡使⽤存储过程

(原因:存储过程时将实现业务的逻辑交给数据库处理,⼀则增减了数据库的负载,⼆则不利于数据库的迁移)

以上就是关于“MySQL触发器然后使用”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注行业资讯频道。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:oracle国家字符集与数据库字符集
下一篇:数据库数据恢复-Oracle数据库truncate table如何恢复数据?
相关文章

 发表评论

暂时没有评论,来抢沙发吧~