博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mysql中的触发器~
阅读量:6193 次
发布时间:2019-06-21

本文共 1569 字,大约阅读时间需要 5 分钟。

CREATE TRIGGER <触发器名称>  --触发器必须有名字,最多64个字符,可能后面会附有分隔符.它和MySQL中其他对象的命名方式基本相象.

{ BEFORE | AFTER }  --触发器有执行的时间设置:可以设置为事件发生前或后。
{ INSERT | UPDATE | DELETE }  --同样也能设定触发的事件:它们可以在执行insert、update或delete的过程中触发。
ON <表名称>  --触发器是属于某一个表的:当在这个表上执行插入、 更新或删除操作的时候就导致触发器的激活. 我们不能给同一张表的同一个事件安排两个触发器。
FOR EACH ROW  --触发器的执行间隔:FOR EACH ROW子句通知触发器 每隔一行执行一次动作,而不是对整个表执行一次。
<触发器SQL语句>  --触发器包含所要触发的SQL语句:这里的语句可以是任何合法的语句, 包括复合语句,但是这里的语句受的限制和函数的一样。
--你必须拥有相当大的权限才能创建触发器(CREATE TRIGGER),如果你已经是Root用户,那么就足够了。这跟SQL的标准有所不同。

例子1:在删除一条数据时,把删除的数据存到另一张表中。

create trigger sss //触发器的名字

after delete on user_role 要删除数据的表

for each row

begin

if old.overtime<curdate() then

insert into t_delete(uid,rid,overtime) values(old.uid,old.rid,old.overtime);  //这里的封号不能省 old代表被删的数据

end if;  //这里的封号不能省

end; //这里的封号不能省

 

例子2:在添加一条数据时,在另外一张表也添加相同数据

create trigger sss1 //触发器的名字

after into user_role (uid,rid,overtime) values('1','2','2015-1-1');

for each row

begin

if old.overtime<curdate() then

insert into t_delete(uid,rid,overtime) values(new.uid,new.rid,new.overtime);  //这里的封号不能省 new代表刚刚添加的数据

end if;  //这里的封号不能省

end; //这里的封号不能省

顺便附上SQL Server的触发器

SQL Server 全程都可以不加符号。

create trigger stu_ins //触发器名字

on stu //表

after delete

As

declare @age int select @age=age from  deleted    删除是deleted

if(@age<=15)    

  begin   

  print '年龄符合要求'

 end

    else    

begin   

  insert into t_xinxi(id,name,age) select * from deleted   //这里要说明下 select * from deleted   这个有多少个字段就前面在插入的时候就的有几个

                               //insert into t_xinxi(name,age) select name,age from deleted   类是与这样

   print '删除成功'

 end

 

转载于:https://www.cnblogs.com/liuJava/p/4894612.html

你可能感兴趣的文章
Dynamips结合VMware搭建站点到站点×××环境
查看>>
arm指令中mov和ldr有什么区别
查看>>
写Java程序的三十个基本规则
查看>>
我的友情链接
查看>>
004 查看表结构命令
查看>>
Exchange 2016 CU9 已发布
查看>>
java jackson json序列化
查看>>
CP(1)
查看>>
redhat7.2升级openssl、openssh
查看>>
Gson自动解析json
查看>>
[备忘]如何接收向shell脚本传入的参数
查看>>
Wine里的中文程序出现方块字的解决方法以及Wine快捷方式的命令格式
查看>>
xendesktop配置DDC连接vcenter,添加vcenter证书步骤。
查看>>
12月流量入口占比动态:搜索引擎季军 份额破20%
查看>>
2月中国域名服务商TOP20市场份额解析(图)
查看>>
mybatis 对枚举类型的自动转换
查看>>
代码中banner文字
查看>>
Micro Service Architecture — Timeout
查看>>
Citrix XenDesktop虚拟化桌面定期重启命令
查看>>
arts-week10
查看>>