前言:MySQL5以上的版本支持触发器功能
什么是触发器:如果你想要某条语句在事件发生时自动执行,就需要用到触发器,确切的说触发器是MySQL响应以下任一语句而自动执行的一条MySQL语句(位于BEGIN和END语句之间的一组语句):DELETE、INSERT、UPDATE,其他MySQL语句不支持触发器
INSERT型触发器 :插入某一行时激活触发器,可能INSERT语句触发。
UPDATE型触发器 : 更改某一行时激活触发器,可能通过UPDATE语句触发。
DELETE型触发器 : 删除某一行时激活触发器,可能通过DELETE语句触发
一、创建触发器
触发器用CREATE TRIGGER语句创建,下面是一个简单的例子
每个触发器对应一张表,每张表最多支持6个触发器(DELETE、INSERT、UPDATE之前和之后)
CREATE TRIGGER newproduct AFTER INSERT ON orders -- 创建一个触发器对应orders表
FOR EACH ROW -- 这句话在mysql是固定的
BEGIN
-- 触发器sql语句
END;
同时使用Navicat for MySQL创建触发器方法如下图所示,但是建议使用语句操作。首先在Navicat for MySQL找到需要建立触发器对应的表,右键“设计表”,然后创建触发器。
二、删除触发器
DROP TRIGGER newproduct;
触发器不能更新或覆盖,为了修改一个触发器,必须先删除它,然后重新创建。
三、使用触发器
1、INSERT触发器,
每当新增一个订单,将这个的订单新增到到总价表备用。NEW表示orders中新插入的值
扫描二维码关注公众号,回复:
10946571 查看本文章
CREATE TRIGGER ordersinsert AFTER INSERT ON orders
FOR EACH ROW #这句话在mysql是固定的
BEGIN
-- 触发器sql语句
INSERT INTO ordertotals(order_num, total)
values(NEW.order_num, 0);
END;