码迷,mamicode.com
首页 > 数据库 > 详细

mysql 触发器

时间:2018-12-14 15:36:52      阅读:185      评论:0      收藏:0      [点我收藏+]

标签:code   png   通过   rop   end   create   inf   技术分享   分享图片   

现在要完成一个点赞功能,并记录该作者和该文章共获得多少赞

技术分享图片

点赞,insert 一条记录

取消点赞, delete 一条记录

 技术分享图片

 

 


 

在nice表添加两个触发器,分别在nice表发生insert和delete时触发 user和motion表统计字段 +1 或者-1

技术分享图片

DROP 
    TRIGGER IF EXISTS `hotUp`; CREATE DEFINER = `Express` @`localhost` TRIGGER `hotUp` 
AFTER 
    INSERT ON `nice` FOR EACH ROW BEGIN 
UPDATE 
    `motion` 
SET 
    motion.hot = motion.hot + 1 
WHERE 
    id = new.motion_id; 
UPDATE 
    `user` 
SET 
    user.nice = user.nice + 1 
WHERE 
    id = new.actor_id; END

技术分享图片

DROP 
    TRIGGER IF EXISTS `hotDown`; CREATE DEFINER = `Express` @`localhost` TRIGGER `hotDown` 
AFTER 
    DELETE ON `nice` FOR EACH ROW BEGIN 
UPDATE 
    `motion` 
SET 
    motion.hot = motion.hot - 1 
WHERE 
    id = old.motion_id; 
UPDATE 
    `user` 
SET 
    user.nice = user.nice - 1 
WHERE 
    id = old.actor_id; END

 

 

begain到end中间是要执行的sql语句

 CREATE DEFINER = `Express` @`localhost` TRIGGER `hotDown` 
用户名 触发器名字 AFTER/before

·         INSERT:将新行插入表时激活触发程序,例如,通过INSERT、LOAD DATA和REPLACE语句。

·         UPDATE:更改某一行时激活触发程序,例如,通过UPDATE语句。

·         DELETE:从表中删除某一行时激活触发程序,例如,通过DELETE和REPLACE语句。

 

FOR EACH ROW BEGIN 是固定语句

sql语句中可以new 代替操作后的新表.字段
old 代替操作前的旧表.字段
来使用

 

mysql 触发器

标签:code   png   通过   rop   end   create   inf   技术分享   分享图片   

原文地址:https://www.cnblogs.com/zzw555/p/10119544.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!