MySQL 触发器使用

  1. 什么是触发器???
    简单的来说就是当执行某条sql语句的时候,会触发另外一条sql语句的执行!

  2. 触发器使用场景:
    a. 逻辑不是很复杂的sql
    b. 两个表具有一定的关联性,一个表数据改变,另外一个表数据也会随之变化
    c. 不适合做太复杂的操作! 一般复杂的操作最好是程序员自己写代码去实现,或者使用mysql的存储过程,

  3. 触发器创建

    create trigger [trigger name] [operate type] on [table name] for each row [sql statment]

举个例子:

create trigger test_trigger on user for each row update user_points set total points = 100;

四. 删除触发器

drop trigger trigger_name;

五. 查看已经创建的触发器

show triggers; //显示所有的触发器

六. 实例
比如有这么一个需求: 一个文章表,一个文章的点赞表。 一篇文章可以被多个人点赞,那么我们要知道篇文章的点赞书,最简单的做法就是在文章表中给一个总的点赞数的字段,这样就不用去统计点赞表跟这篇文章相关联的点赞记录。

创建表 article

create table article(
    id int not null ,
    title varchar(200) not null,
    total_good int not null default 0,
);

创建点赞表

create table good(
    id int not null ,
    user_id int null
    aid int not null comment '关联的文章表的id',
);
insert into article values(1,'hi this is test',0);

创建触发器

create trigger good_ai after insert on good for each row update article set total_good = old.total_good + 1 where good.aid = article.id
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值