mysql_15_触发器

Posted 鑫文飘雪

tags:

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

 1 USE db_book;
 2 SELECT * FROM t_book;
 3 SELECT * FROM t_booktype;
 4 -- 第九章:触发器
 5 -- 第一节:触发器的引入
 6 --     触发器(TRIGGER)是由事件来触发某个操作。这些操作包括INSERT语句,UPDATE语句
 7 --     和DELETE语句。当数据库系统执行这些事件时,就会激活触发器执行响应的操作。
 8 
 9 
10 -- 第二节:创建与使用触发器
11 -- 2.1创建只有一个执行语句的触发器
12 --     CREATE TRIGGER 触发器名称 BEFORE|AFTER 触发事件 
13 --             ON 表名 FOR EACH ROW 执行语句
14 CREATE TRIGGER trig_book AFTER INSERT
15         ON t_book FOR EACH ROW 
16                 UPDATE t_booktype SET bookNum=bookNum+1 WHERE new.bookTypeId=t_booktype.id; -- new:过度变量
17 
18 INSERT INTO t_book VALUES(NULL,"算法导论",84,"作者1",1);
19 
20 -- 2.2创建有多个执行语句的触发器
21 --     CREATE TRIGGER 触发器名称 BEFORE|AFTER 触发事件 
22 --             ON 表名 FOR EACH ROW 
23 --             BEGIN 
24 --             执行语句列表
25 --             END
26 CREATE TABLE t_log(
27 id int PRIMARY KEY NOT NULL auto_increment,
28 actionTime datetime,
29 actionContext VARCHAR(100)
30 )
31 
32 CREATE TABLE t_test(
33 id int PRIMARY KEY NOT NULL auto_increment,
34 test VARCHAR(10)
35 )
36 
37 INSERT INTO t_test VALUES (null,"aaa");
38 
39 SELECT * FROM t_log;
40 SELECT * FROM t_test;
41 
42 CREATE TRIGGER trig_book2 AFTER DELETE
43         ON t_book FOR EACH ROW
44         BEGIN
45                 UPDATE t_bookType SET bookNum=bookNum-1 WHERE old.bookTypeId=t_bookType.id;
46                 INSERT INTO t_log VALUES (NULL,NOW(),"在t_book表中删除了一条数据");
47                 DELETE FROM t_test WHERE old.bookTypeId=t_test.id;
48         END
49 
50 DELETE FROM t_book WHERE bookName="算法导论";
51 
52 SELECT * FROM t_book;
53 SELECT * FROM t_booktype;
54 SELECT * FROM t_log;
55 SELECT * FROM t_test;
56 
57 
58 -- 第三节:查看触发器
59 --     3.1 SHOW TRIGGERS 语句查看触发器信息(所有触发器)
60 SHOW TRIGGERS;
61 
62 --     3.2 在tiggers表中查看触发器信息
63 -- 在系统数据库information_schema中的tiggers表中查看
64 
65 -- 第四节:删除触发器
66 -- DROP TRIGGER 触发器名称;
67 DROP TRIGGER trig_book;
68 SHOW TRIGGERS;
69 
70 DROP TRIGGER trig_book2;
71 SHOW TRIGGERS;

 

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

d_2_MYSQL晋级之触发器

(转)Mysql存储引擎__笔记

MySQL数据库_用户操作与权限管理视图存储过程触发器基本函数

[AndroidStudio]_[初级]_[配置自动完成的代码片段]

VSCode 配置 用户自定义代码片段 自定义自动代码补充

[AndroidStudio]_[初级]_[配置自动完成的代码片段]