数据库-MySQL-触发器

1.触发器的引入
触发器(TRIGGER)是由事件来触发某个操作。这些事件包括 INSERT 语句、UPDATE 语句和 DELETE 语句。当数据库系统执行这些事件时,就会激活触发器执行相应的操作。


2.创建与使用触发器
1> 创建只有一个执行语句的触发器

REATE TRIGGER 触发器名 BEFORE | AFTER 触发事ON 表名 FOR EACH ROW 执行语句
eg:
CREATE TRIGGER ti1 AFTER INSERT
	ON t_book FOR EACH ROW 
	UPDATE t_bookType SET bookNum = bookNum + 1 WHERE new.bookTypeId = t_bookType.id;

2> 创建有多个执行语句的触发器
语法:

CREATE TRIGGER 触发器名 BEFORE | AFTER 触发事件
ON 表名 FOR EACH ROW
BEGIN
执行语句列表
END

eg:

DELIMITER |
CREATE TRIGGER ti2 AFTER DELETE
ON t_book FOR EACH ROW
BEGIN
    UPDATE t_bookType SET bookNum = bookNum-1 WHERE old.bookTypeId = t_bookType.id;
    INSERT INTO t_log VALUES(NULL, NOW(), '在book表里删除了一条数据');
    DELETE FROM t_text WHERE old.bookTypeId = t_text.id;

END
|
DELIMITER;    //DELIMITER还有一个 | 符号是分隔符的意思,让包含在内的都执行

DELETE FROM t_book WHERE id = 1;  //删除一条数据

解释:
1.里面的old 和 new 是中间变量的意思,old表示被删除的字段,new 表示增加的字段。

2.首尾的DELIMITER还有一个 | 符号是分隔符的意思,没有这个的话,BEGIN和END里的语句就会执行,而不是创建的操作。

3.里面的 NOW() 方法返回当前的时间


3.查看触发器
1> SHOW TRIGGERS 语句查看触发器信息
eg:

SHOW TRIGGERS     //没有分号

2> 在 triggers 表中查看触发器信息,点击左边系统数据库information_schema,里面的triggers 表中


4.删除触发器
语法:

DROP TRIGGER 触发器名;
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值