mysql_15_触发器
时间:2021-07-01 10:21:17
帮助过:31人阅读
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_触发器
标签:arc ima show use 系统数据库 creat 表名 text --