Stay hungry, Stay foolish

0%

MySQL触发器简单实例

需求

有帖子和评论两表,增加评论的时候把对应帖子的评论数加1.

准备工作

仅列出本文所需的字段:

1
2
topic(`id`,`post_num`)
post(`id`,`topic_id`)

开工

1
2
3
4
5
6
CREATE TRIGGER t_after_insert_post
AFTER INSERT ON post
FOR EACH ROW
BEGIN
update topic set post_num=post_num+1 where id = NEW.topic_id;
END;

测试

select => 创建触发器 => select

所要了解的

###语法

  • 创建
1
CREATE TRIGGER trigger_name trigger_time trigger_event ON tbl_name FOR EACH ROW trigger_stmt
  • 删除
1
DROP TRIGGER [schema_name.]trigger_name
  • 查看
1
SELECT * FROM information_schema.TRIGGERS

###NEW和OLD

获取受触发器影响的那行的所有列的数据(本例中用NEW获取新插入的那条记录)

据说打赏我的人,代码没有BUG