MYSQL触发器入门
来源:互联网 发布:如何上淘宝网购到付款 编辑:程序博客网 时间:2024/06/11 19:10
~~语法~~
CREATE TRIGGER <触发器名称> --触发器必须有名字,最多64个字符,可能后面会附有分隔符.它和MySQL中其他对象的命名方式基本相象.
{ BEFORE | AFTER } --触发器有执行的时间设置:可以设置为事件发生前或后。
{ INSERT | UPDATE | DELETE } --同样也能设定触发的事件:它们可以在执行insert、update或delete的过程中触发。
ON <表名称> --触发器是属于某一个表的:当在这个表上执行插入、 更新或删除操作的时候就导致触发器的激活. 我们不能给同一张表的同一个事件安排两个触发器。
FOR EACH ROW --触发器的执行间隔:FOR EACH ROW子句通知触发器 每隔一行执行一次动作,而不是对整个表执行一次。
<触发器SQL语句> --触发器包含所要触发的SQL语句:这里的语句可以是任何合法的语句, 包括复合语句,但是这里的语句受的限制和函数的一样。
NEW 与 OLD 详解
上述示例中使用了NEW关键字,和 MS SQL Server 中的 INSERTED 和 DELETED 类似,MySQL 中定义了 NEW 和 OLD,用来表示
触发器的所在表中,触发了触发器的那一行数据。
具体地:
在 INSERT 型触发器中,NEW 用来表示将要(BEFORE)或已经(AFTER)插入的新数据;
在 UPDATE 型触发器中,OLD 用来表示将要或已经被修改的原数据,NEW 用来表示将要或已经修改为的新数据;
在 DELETE 型触发器中,OLD 用来表示将要或已经被删除的原数据;
使用方法: NEW.columnName (columnName 为相应数据表某一列名)
另外,OLD 是只读的,而 NEW 则可以在触发器中使用 SET 赋值,这样不会再次触发触发器,造成循环调用(如每插入一个学生前,都在其学号前加“2013”)。
查看触发器
和查看数据库(show databases;)查看表格(show tables;)一样,查看触发器的语法如下:
SHOW TRIGGERS [FROM schema_name];
作用是 增加tab1表记录之后 自动将记录添加到tab2表中
create TRIGGER t_afterinsert_ontab1AFTER INSERT ON tab1
FOR EACH ROW
BEGIN
insert into tab2(tab2_id) VALUES(new.tab1_id) ;
END ;
insert into tab1 (tab1_id) VALUES(100);
select * from tab1 ;
select * from tab2 ;
作用是 当删除tab1表记录的后 会自动将tab2中的对应的记录删除
CREATE TRIGGER afterdeletetrriger
AFTER DELETE on tab1
FOR EACH ROW
BEGIN
DELETE FROM tab2 where tab2_id=old.tab1_id ;
END ;
DELETE from tab1 where tab1_id= 100 ;
select * from tab2 ;
- 【MySQL】触发器入门(转)
- MySQL触发器入门
- 【MySQL】触发器入门
- MYSQL触发器入门
- MySQL触发器入门
- MySQL入门之触发器
- 【MySQL】触发器入门
- 【MySQL】触发器入门(转)
- MySQL入门很简单-触发器
- MySQL 存储过程 触发器 函数 入门
- MySQL 入门(八)—— 触发器
- MySQL入门经典-----8、触发器(定时炸弹)
- 触发器入门基础-触发器
- 触发器入门
- 触发器入门
- 触发器入门
- 【mysql 触发器】触发器使用
- MYSQL入门学习之十一:触发器的基本操作
- hibernate的常见错误
- MFC显示Mat数据格式(Opencv)图片,保证4字节对齐,图片缩放不错行
- ES6
- localhost 拒绝访问链接请求
- wamp图标橙色mysql不启动【错误解决】本地计算机上的mysql服务启动停止后,某些服务在未由其他服务或程序使用时将自动停止
- MYSQL触发器入门
- JVM学习笔记之一:体系结构
- unity中htc vive射线与UI碰撞检测-graphcs.Raycast()
- 在Activity中获取View的高度(Android开发艺术探索学习笔记)
- js前台图片回显
- 利用JDBC连接Oracle数据库
- hdu3037 隔板法+Lucas定理求大组合取模
- Apple本地认证(密码+Touch id)
- springboot+shiro+mybatis实现角色权限控制