前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MySQL(触发器)

MySQL(触发器)

作者头像
全栈开发日记
发布2022-05-12 21:12:22
12.5K0
发布2022-05-12 21:12:22
举报
文章被收录于专栏:全栈开发日记全栈开发日记

目录:

触发器定义 触发器特性 触发器的创建 删除触发器

触发器定义

与表有关的数据对象,在满足某种条件时,被动执行的SQL语句。

触发器特性:

① 有begin,end的结构体(多条SQL语句,单条SQL是没有的)

② 需要指定触发的条件:insert,update,delete

③ 有指定的触发事件:before,after

④ 指定触发的频率:针对每一行的数据变化去执行SQL语句

⑤ 触发器定义在表上

触发器的创建:

单条业务逻辑的触发器创建

语法

代码语言:javascript
复制
create trigger 触发器名称 
before|after 
insert|update|delete 
on 表名 
for each row 业务逻辑;

代码实例:

当A表中插入数据后,B表中也插入一条数据

代码语言:javascript
复制
create trigger trigger_insert 
after 
insert 
on A
for each row 
insert into B(comments) values('插入数据');

详解:

after:为触发器的触发时间。 insert:为触发器的触发条件。

trigger_insert:为触发器名称。

comments:为B表中的一个字段名称。

多条业务逻辑的触发器创建

语法:

代码语言:javascript
复制
delimiter $
create trigger 触发器名称 
before|after 
insert|update|delete 
on 表名 
for each row 
begin 
insert ...;
update ...;
end;$

代码实例:

在A表中插入数据前,B表中插入2条数据

代码语言:javascript
复制
DELIMITER $ 
CREATE TRIGGER trigger_insert_before 
BEFORE 
INSERT 
ON A 
FOR EACH ROW 
BEGIN 
INSERT INTO B(comments,name) values('insert1',NEW.name); 
INSERT INTO B(comments,name) values('insert2',NEW.name);
END;$

详解:

delimiter :作用类似于在jQuery中的符的让渡。

new:after|before insert,用于获取将要插入的数据

old:after|before update|delete,用户获取已经修改的或已经删除的数据

删除触发器

语法:

代码语言:javascript
复制
drop trigger 触发器名称;
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-05-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 全栈开发日记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 单条业务逻辑的触发器创建
  • 多条业务逻辑的触发器创建
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档