博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mysql笔记(22)--使用触发器
阅读量:3959 次
发布时间:2019-05-24

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

使用触发器

什么是触发器?

在事件发生时自动执行

MySQL语句在需要时被执行,存储过程也是如此。但是,如果你想要某条语句(或某些语句)在事件发生时自动执行,可能就需要用到触发器了。

所有这些例子的共同之处是它们都需要在某个表发生更改(增删改)时自动处理。这确切地说就是触发器

如何使用触发器?

创建触发器

在这里插入图片描述

USE mysql_must_study;DELIMITER $$$$CREATE TRIGGER newproductAFTER INSERTON products FOR EACH ROWSELECT 'Product added' INTO @res;$$DELIMITER ;

MYSQL5以后,不允许触发器返回任何结果,因此使用into @变量名,将结果赋值到变量中,用select调用即可。

在这里插入图片描述

修改表后查看res变量值,未修改前是NULL。

SELECT @res;

在这里插入图片描述

只有表才支持触发器,触发器按每个表每个事件每次地定义,每个表每个事件每次只允许一个触发器。

每个表最多支持6个触发器(每条INSERT、UPDATE和DELETE的之前和之后)。单一触发器不能与多个事件或多个表关联,所以,如果你需要一个对INSERT和UPDATE操作执行的触发器,则应该定义两个触发器

在这里插入图片描述

删除触发器

在这里插入图片描述

INSERT触发器

在这里插入图片描述

可以通过insert触发器查询自增的id值

USE mysql_must_study;DELIMITER $$$$CREATE TRIGGER neworderAFTER INSERTON orders FOR EACH ROWSELECT NEW.order_num INTO @ID;$$DELIMITER ;
SELECT @ID;

一开始默认是NULL

在这里插入图片描述

插入后再查看

INSERT INTO orders(order_date,cust_id) VALUES (Now(),10001);SELECT @ID;

在这里插入图片描述

在这里插入图片描述

DELETE触发器

在这里插入图片描述

USE mysql_must_study;DELIMITER $$$$CREATE TRIGGER deleteorderBEFORE DELETE ON orders FOR EACH ROWBEGIN 	INSERT INTO mysql_must_study.archive_orders (order_num,order_date,cust_id)	VALUES (OLD.order_num,OLD.order_date,OLD.cust_id);END $$DELIMITER ;

在这里插入图片描述

原本的 archive_orders 表是空的。

现在删除一个订单,被删除的订单到 archive_orders 这来了。

DELETE FROM mysql_must_study.ordersWHERE order_num=20011;

在这里插入图片描述

在这里插入图片描述

UPDATE触发器

在这里插入图片描述

下面的例子保证州名 vend_state 缩写总是大写(不管UPDATE语句中给出的是大写还是小写)

USE mysql_must_study;DELIMITER $$$$CREATE TRIGGER updatevendorBEFORE UPDATE ON vendors FOR EACH ROWSET NEW.vend_state = upper(NEW.vend_state); $$DELIMITER ;

更新后

UPDATE mysql_must_study.vendorsSET vend_name='aaa', vend_address='aaa', vend_city='aaa', vend_state='aad', vend_zip='666', vend_country='UU'WHERE vend_id=1007;

在这里插入图片描述

思维导图–总结

在这里插入图片描述

转载地址:http://ppozi.baihongyu.com/

你可能感兴趣的文章
xp常用命令
查看>>
java 加密解密
查看>>
xp 忘记密码
查看>>
xp 忘记密码
查看>>
java 过滤器
查看>>
java 过滤器
查看>>
as发送邮件
查看>>
AJAX应用之注册用户即时检测
查看>>
File 类小结
查看>>
java除去字符串空格
查看>>
jsp 2.0标记文件
查看>>
Hibernate中Criteria的完整用法
查看>>
sql jsp
查看>>
Word生成目录
查看>>
JSP彩色验证码源程序编写
查看>>
java操作Excel、PDF文件
查看>>
java 获得系统变量
查看>>
window.event对象用法讲解
查看>>
jive license保护原理
查看>>
java des加密
查看>>