首页 > 数据库技术 > 详细

MySQL触发器

时间:2019-03-25 15:03:58      阅读:159      评论:0      收藏:0      [点我收藏+]

业务需要,要同步两个数据的用户信息,因此用到了触发器。

 

触发器是数据库表的属性,是一个特殊的存储过程,触发器是个特殊的存储过程,但是触发器不需要CALL语句调用,也不需要手动启动。它由事件触发,事件包括INSERT,UPDATE和DELETE语句,当表中出现这些特定事件时,将激活该对象 。MySQL5.0.2开始支持。

一、创建触发器

语法:

CREATE TRIGGER synchronization_user_insert AFTER INSERT ON user_table 
FOR EACH ROW 
BEGIN
INSERT INTO b.user2(`id`,`name`
VALUES(NEW.id,NEW.name);

END

 

#什么时候触发after或者before;操作事件(触发器类型)包括 insert,update,deleteON 后面绑定表名

#for each row每一行受影响,影响范围

# b表示不同的数据库库名,同一个数据库可省略。可见触发器是一个全局函数

#NEW表示操作后新的值,OLD表示操作前的值

技术分享图片

 

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

mysql> DELIMITER ||
mysql> CREATE TRIGGER trig2 BEFORE DELETE
    -> ON work FOR EACH ROW
    -> BEGIN
    ->   INSERT INTO time VALUES(NOW());
    ->   INSERT INTO time VALUES(NOW());
    -> END||
mysql> DELIMITER ;

 

二、查看触发器

  SHOW TRIGGERS;

 

三、删除触发器

  DROP TRIGGER [数据库名称.]触发器名称;

 

引用大佬的话:

!!尽量少使用触发器。

  假设触发器触发每次执行1s,insert table 500条数据,那么就需要触发500次触发器,光是触发器执行的时间就花费了500s,而insert 500条数据一共是1s,那么这个insert的效率就非常低了。因此我们特别需要注意的一点是触发器的begin end;之间的语句的执行效率一定要高,资源消耗要小。

  触发器尽量少的使用,因为不管如何,它还是很消耗资源,如果使用的话要谨慎的使用,确定它是非常高效的:触发器是针对每一行的;对增删改非常频繁的表上切记不要使用触发器,因为它会非常消耗资源。 

MySQL触发器

原文:https://www.cnblogs.com/zeussbook/p/10593662.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!