- 1、本文档共24页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
MySQL开发和 与实践第10章触发器.ppt
;;10.1 MySQL触发器;10.1.1 创建MySQL触发器;【例10-1】 下面创建一个由插入命令“INSERT”触发的触发器auto_save_time。具体步骤如下:
(1)创建一个名称为timelog的表格,该表的结构非常简单。相关代码如下所示:
create table timelog(
id int(11) primary key auto_increment not null,
savetime varchar(50) not null
);
(2)创建名称为auto_save_time的触发器其代码如下:
delimiter //
create trigger auto_save_time before insert
on studentinfo for each row
insert into timelog(savetime) values(now());
//; 上面10.1.1小节中,已经介绍了如何创建一个最基本的触发器,但是在实际应用中,往往触发器中包含多个执行语句。其中创建具有多个执行语句的触发器语法结构如下:
CREATE TRIGGER 触发器名称 BEFORE | AFTER 触发事件
ON 表名 FOR EACH ROW
BEGIN
执行语句列表
END
其中,创建具有多个执行语句触发器的语法结构与创建触发器的一般语法结构大体相同,其参数说明请参考10.1.1小节中的参数说明。这里不再赘述。在该结构中,将要执行的多条语句放入BEGIN与END之间。多条语句需要执行的内容,需要用分隔符“;”隔开。
说明:
一般放在BEGIN与END之间的多条执行语句必须用结束分隔符“;”分开。在创建触发器过程中需要更改分隔符,故这里应用上一章提到的DELIMITERT语句,将结束符号变为“//”。当触发器创建完成后,读者同样可以应用该语句将结束符换回“;”。
;;运行以上代码的结果如图10-3所示。
图10-3 创建具有多个语句的触发器delete_time_info
;【例10-3】 触发器创建成功,当执行删除操作后,timelog与timeinfo表中将会插入两条相关记录。执行删除操作的代码如下:
DELETE FROM studentinfo where sid=7;
删除成功后,应用SELECT语句分别查看timelog数据表与timeinfo数据表。其运行结果如图10-4、图10-5所示。
图10-4 查看timelog数据表信息 图10-5 查看timeinfo数据表信息
从以上图片中可以看出,触发器创建成功后,当用户对students表执行DELETE操作时,students数据库中的timelog数据表和timeinfo数据表中分别被插入操作时间和操作信息。
说明:
在MySQL中,一个表在相同的时间和相同的触发时间只能创建一个触发器,如触发时间INSERT,触发时间为AFTER的触发器只能有一个。但是可以定义BEFORE的触发器。
;10.2 查看触发器;在MySQL中,可以执行SHOW TRIGGERS语句查看触发器的基本信息,其基本形式如下:
SHOW TRIGGERS;
进入MySQL数据库,选择students数据库并查看该数据库中存在的触发器,其运行结果如图10-6所示。
图10-6 查看触发器
在命令提示符中输入SHOW TRIGGERS语句即可查看选择数据库中的所有触发器,但是,应用该查看语句存在一定弊端,即只能查询所有触发器的内容,并不能指定查看某个触发器的信息。这样一来,就会在用户查找指定触发器信息的时候带来极大不便。故推荐读者只在触发器数量较少的情况下应用SHOW TRIGGERS语句查询触发器基本信息。
; 在MySQL中,所有触发器的定义都存在该数据库的triggers表中。读者可以通过查询triggers表来查看数据库中所有触发器的详细信息。查询语句如下所示:
SELECT * FROM information_schema.triggers;
其中information_schema是MySQL中默认存在的库,而information_schema是数据库中用于记录触发器信息的数据表。通过SELECT语句查看触发器信息。其运行结果与图10-6相同。但是如果用户想要查看某个指定触发器的内容。可以通过where子句应用TRIGGER字段做为查询条件。其代码如下所示:
SELECT * FROM information_schema.triggers WHERE TRIGGER_NAME= 触发器名称;
其
您可能关注的文档
- Java程序的设计与实践第十一章 多线程.ppt
- Java程序的设计与实践第十二章 Java数据库编程.ppt
- Java程序的设计与实践第四章 继承.ppt
- Java程序的设计基础第10章 多线程编程.ppt
- Java程序的设计基础第11章 Java网络编程.ppt
- Java程序的设计基础第12章 数据库编程.ppt
- Java程序的设计基础第1章 初次接触Java.ppt
- Java程序的设计基础第2章 Java语言基础.ppt
- Java程序的设计基础第4章 继承与多态.ppt
- Java程序的设计基础第5章 常用数据结构.ppt
- 【面试提升】2025春招SQLServer面试题.pdf
- (三模)石家庄市2025届高中高三毕业年级教学质量检测(三)历史试卷(含答案).docx
- 炎德·英才大联考雅礼中学 2025 届模拟试卷(一)物理试卷(含答案解析).pdf
- (二模)2025年5月济南市高三高考针对性训练英语试卷(含答案解析).docx
- (重庆主城区三诊)重庆市高2025届高三学业质量调研抽测 (第三次)英语试卷(含答案).docx
- 炎德·英才大联考雅礼中学 2025 届模拟试卷(一)地理试卷(含答案解析).pdf
- 乐山市2025届高三三调政治试卷(含答案).pdf
- 炎德·英才大联考雅礼中学 2025 届模拟试卷(一)生物试卷(含答案解析).pdf
- 四川省2025届高三第二次教学质量联合测评语文试卷(含答案解析).pdf
- 四川省2025届高三第二次教学质量联合测评历史试卷(含答案解析).pdf
文档评论(0)