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;
时间: 2024-10-27 19:24:54

mysql_15_触发器的相关文章

Oracle数据库——触发器的创建与应用

一.涉及内容 1.理解触发器的概念.作用和类型. 2.练习触发器的创建和使用. 二.具体操作 (实验) 1.利用触发器对在scott.emp表上执行的DML操作进行安全性检查,只有scott用户登录数据库后才能向该表中执行DML操作.(第1题中,user是系统函数,返回当前用户.字符串中使用两个单引号表示一个单引号.) 要求:分别以system用户和scott用户对emp 表执行DML操作,试验触发器的运行效果. (1)在scott用户下创建触发器 语句: create or replace t

Mysql中的触发器

阅读目录 什么是触发器 特点及作用 例子:创建触发器,记录表的增.删.改操作记录 弊端 什么是触发器 简单的说,就是一张表发生了某件事(插入.删除.更新操作),然后自动触发了预先编写好的若干条SQL语句的执行: 特点及作用 特点:触发事件的操作和触发器里的SQL语句是一个事务操作,具有原子性,要么全部执行,要么都不执行: 作用:保证数据的完整性,起到约束的作用: 例子:创建触发器,记录表的增.删.改操作记录 接下来将创建user和user_history表,以及三个触发器tri_insert_u

oracle(sql)基础篇系列(五)——PLSQL、游标、存储过程、触发器

  PL/SQL PL/SQL 简介 每一种数据库都有这样的一种语言,PL/SQL 是在Oracle里面的一种编程语言,在Oracle内部使用的编程语言.我们知道SQL语言是没有分支和循环的,而PL语言是为了补充SQL语言的,是带有了分支和循环的语言. PL/SQL 语法 基本数据类型声明 declare v_name varchar2(20); v_temp number(1); v_count binary_integer := 0; v_sal number(7,2) := 4000.00

information_schema系列五(表,触发器,视图,存储过程和函数)

这个系列的文章主要是为了能够让自己了解MySQL5.7的一些系统表,统一做一下备注和使用,也希望分享出来让大家能够有一点点的受益. 1:TABLES TABLES这张表毫无疑问了,就是记录的数据库中表的信息,其中包括系统数据库和用户创建的数据库.而TABLESPACES 却是标注的活跃表空间. 看一下TABLES 的记录关于TEST1表: 其实我们通过show table status like 'test1'\G;可以看到相同的信息. TABLE_TYPE这列有两种类型,分别是BASE TAB

触发器和存储过程

触发器和存储过程   1.触发器   在进行dml操作的时候(insert,update,delete),可以对事件进行监听和响应,这种机制在数据库中叫做触发器.   触发器与永久性表关联,只能建在永久性表上面,不能是temporary表或view,且只有insert,update,delete三种事件.   mysql -u root -paixocm   show triggers;   show triggers\G;mysql> delimiter // ====改结束符   自动在内存

oracle 触发器

触发器--启动触发器alter trigger schema_trigger enable;--禁用触发器alter trigger schema_trigger disable;--删除触发器DROP TRIGGER COMPONT_GIS_TEM; 这个触发器是为了增加部件时,同步更新部件的缓存表,缓存表是为了在拿gis数据时,不用再联表查询街道.社区.大类的名称了缓存表中的sequence是  COMPONT_GIS_TEM_SEQ加入触发器的语句是CREATE OR REPLACE TR

mysql触发器

这两天写项目,有个要求是记录用户登录登出操作,把这些操作写到日志表里去,我觉得这个功能用MySQL的触发器来写,更方便一些,所以在这整理了一下这一过程. 在这里,我就不把项目的所以代码都粘贴过来了,项目用的是hibernate,这里我创建两个简单的表来演示一下这个过程. 1:登录表,记录用户的账号,密码以及在线状态,0表示不在线,1表示在线.对status进行默认约束,默认值就是0. create table login( id int not null primary key auto_inc

触发器使用教程和命名规范

目  录 触发器使用教程和命名规范 1 1,触发器简介 1 2,触发器示例 2 3,触发器语法和功能 3 4,例一:行级触发器之一 4 5,例二:行级触发器之二 4 6,例三:INSTEAD OF触发器 6 7,例四:语句级触发器之一 8 8,例五:语句级触发器之二 9 9,例六:用包封装触发器代码 10 10,触发器命名规范 11 1,触发器简介 触发器(Trigger)是数据库对象的一种,编码方式类似存储过程,与某张表(Table)相关联,当有DML语句对表进行操作时,可以引起触发器的执 行

20151016触发器

--触发器:一种特殊的存储过程,通过对数据库表操作的动作,来触发,增删改select *from studentselect *from scoreselect *From fruit drop trigger shanchu--第一种触发器 当某个动作之后触发alter trigger xiugaion Fruitafter update --修改之后的动作as select *From inserted --inserted 表示变动的那一行属性go update Fruit set Num