MySQL-触发器

Posted DragonFire

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL-触发器相关的知识,希望对你有一定的参考价值。

触发器:对表进行增删改操作之后,完成某操作,被称之为触发器

1.创建基本语法

技术分享
 1 # 插入前
 2 CREATE TRIGGER tri_before_insert_tb1 BEFORE INSERT ON tb1 FOR EACH ROW
 3 BEGIN
 4     ...
 5 END
 6 
 7 # 插入后
 8 CREATE TRIGGER tri_after_insert_tb1 AFTER INSERT ON tb1 FOR EACH ROW
 9 BEGIN
10     ...
11 END
12 
13 # 删除前
14 CREATE TRIGGER tri_before_delete_tb1 BEFORE DELETE ON tb1 FOR EACH ROW
15 BEGIN
16     ...
17 END
18 
19 # 删除后
20 CREATE TRIGGER tri_after_delete_tb1 AFTER DELETE ON tb1 FOR EACH ROW
21 BEGIN
22     ...
23 END
24 
25 # 更新前
26 CREATE TRIGGER tri_before_update_tb1 BEFORE UPDATE ON tb1 FOR EACH ROW
27 BEGIN
28     ...
29 END
30 
31 # 更新后
32 CREATE TRIGGER tri_after_update_tb1 AFTER UPDATE ON tb1 FOR EACH ROW
33 BEGIN
34     ...
35 END
创建触发器
技术分享
1 delimiter //
2 CREATE TRIGGER tri_before_insert_tb1 BEFORE INSERT ON tb1 FOR EACH ROW
3 BEGIN
4 IF NEW. NAME == alex THEN
5     INSERT INTO tb2 (NAME)
6 VALUES
7     (aa)
8 END//
9 delimiter ;
示例:insert之前
技术分享
 1 delimiter //
 2 CREATE TRIGGER tri_after_insert_tb1 AFTER INSERT ON tb1 FOR EACH ROW
 3 BEGIN
 4     IF NEW. num = 666 THEN
 5         INSERT INTO tb2 (NAME)
 6         VALUES
 7             (666),
 8             (666) ;
 9     ELSEIF NEW. num = 555 THEN
10         INSERT INTO tb2 (NAME)
11         VALUES
12             (555),
13             (555) ;
14     END IF;
15 END//
16 delimiter ;
示例:insert之后

特别的:NEW表示即将插入的数据行,OLD表示即将删除的数据行。

2.删除触发器

DROP TRIGGER tri_after_insert_tb1;

3.使用触发器:一旦对已经生成触发器的数据表进行触发条件操作,就会执行触发器了

insert into tb1(num) values(666)

 

以上是关于MySQL-触发器的主要内容,如果未能解决你的问题,请参考以下文章

如何设置 vscode 的代码片段,以便在自动完成后自动触发 vscode 的智能感知?

片段创建的 Intent 不会触发 onNewIntent

导航到另一个片段时触发 API 调用

我如何使用 codeanywhere 片段

前端防扒代码片段

前端防扒代码片段