mysql 触发器
现在要完成一个点赞功能,并记录该作者和该文章共获得多少赞
点赞,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 代替操作前的旧表.字段
来使用