版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
在实际应用中,触发器在以下方面非常有用:利用触发器可以防止误操作的INSERT、UPDATAE以及DELETE操作。触发器可以评估数据修改前后表的状态,并根据该差异采取对应的措施。触发器可以实现表数据的级联更改,在一定程度上保证数据的完整性,例如当删除某个学生时,他所对应的成绩等信息也应该一并删除。利用触发器可以记录某些操作事件。例如当对指定的表进行数据操作时,可以利用触发器来记录被操作的数据,这样该记录可以被当作日志使用。8.1概述8.2创建触发器8.2.1创建触发器的语法形式CREATE
TRIGGER
trigger_name
trigger_time
trigger_event
ON
tbl_name
FOR
EACH
ROW
trigger_bodytrigger_name:表示触发器名称,由用户自行指定。trigger_time:表示触发器被触发的时刻,可以指定为before或after,before表示触发器是在激活它的语句之前触发,而after表示触发器是在激活它的语句之后触发。trigger_event:表示触发器的触发事件,用于指定激活触发器的语句的种类。tbl_name:表示建立触发器的表名,即在哪张表上建立触发器。同一个表不能同时拥有两个具有相同触发时刻和事件的触发器。FOR
EACH
ROW:指行级触发器(在其他的数据库中可能存在其他级别的触发器),即对于受触发事件影响的每一行都要激活触发器的动作。trigger_bodty:指触发器执行语句,即触发器激活时将要执行的MySQL语句。8.2创建触发器1.
创建触发器的语法形式【例8-1】在数据库sailing的OrderDetails表中创建一个名为ins_sum的触发器,触发的条件是向表OrderDetails中插入数据前,对新插入的BuyPrice字段求和。1在MySQL命令行客户端输入如下SQL语句mysql
>
CREATE
TRIGGER
ins_sum
BEFORE
INSERT
ON
OrderDetailsFOR
EACH
ROW
SET
@sum
=
@sum
+
NEW.BuyPrice;2在MySQL命令行客户端使用INSERT语句向表OrderDetails中插入数据mysql
>INSERT
INTO
OrderDetails
VALUES(1,3,2,2000),
(1,4,1,2200);3在MySQL命令行客户端输入如下语句验证触发器mysql
>SELECT
@SUM;+++|
@sum
|+|
4200
|++1
row
in
set
(0.00
sec)1.
创建触发器的语法形式【例8-2】针对Shippers表分别创建BEFORE
INSERT、AFTER
INSERT触发器,使得向
Shippers表插入新记录从而触发相应触发器时,均向新建表tri_demo增加一条相应的记录,以观察触发器的触发情况。1在MySQL命令行客户端输入语句创建一个名为tri_demo的新表;2在MySQL命令行客户端输入语句,使得触发Shippers表BEFORE
INSERT触发器的同时,向tri_demo表的note字段添加‘before
insert’信息;3在MySQL命令行客户端输入语句,使得触发Shippers表AFTER
INSERT触发器的同时,向tri_demo表的note字段添加‘after
insert’信息;4观察向Shippers表插入新纪录时,触发器触发状况。8.2创建触发器8.2.2利用工具创建触发器【例8-3】利用图形工具为表Shippers创建名为upd_shippers_bef的BEFORE
UPDATE类型触发器,当为表Shippers修改数据时激发该触发器,并在表tri_demo中插入一条相应的新记录(其note字段值为"before
update")。8.2创建触发器在Sailing数据库左窗格中单击shippers表单击右窗格右上角的“触发器”按钮单击右窗格左下角的“添加触发器”按钮在弹出的“编辑触发器”对话框中输入创建相应触发器的信息,单击“执行”即可【例8-4】通过SHOW
TRIGGERS命令查看触发器状况。8.3查看触发器8.3.1通过SHOW
TRIGGERS语句查看触发器通过执行SHOW
TRIGGERS命令可查看触发器的状态、语法等信息,其语法格式如下:mysql
>SHOW
TRIGGERS
\G;该语句因为不能查询指定的触发器,所以每次都返回所有的触发器的信息在触发器较少的情况下,使用该语句会很方便【例8-5】查看名为"ins_shippers_bef"的触发器。8.3查看触发器8.3.2通过系统表triggers查看触发器如要查看特定触发器信息,可通过SELECT查询命令直接从triggers表中查看,其语法结构如下:SELECT
*
FROM
INFORMATION_SCHEMA.TRIGGERS
WHERE
condition;8.4删除触发器8.4.1通过DROP
TRIGGER语句删除触发器可以通过DROP
TRIGGER命令删除触发器,其语法格式如下:DROP
TRIGGER
[
IF
EXISTS
]
[
schema_name.
]
trigger_nameIF
EXISTS:可选项,用于避免在没有触发器的情况下删除触发器schema_name:可选项,用于指定触发器所在的数据库的名称。如果缺省,则为当前数据库trigger_name:
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 有限责任公司章程治理结构及出资修订条款-依据2024版《公司法》修订
- 全球与中国家用清洁机器人市场发展趋势及前景趋势预测报告2024-2030年
- 南京市玄武区2023年九年级上学期《道德》期末试题和参考答案
- 环境控制系统相关行业投资规划报告范本
- 电池修复机相关行业投资方案
- 比亚迪创新企业案例报告
- 018年新年祝福语大全
- 本科毕业论文答辩自述
- 高中数学暑假初高衔接讲义1.绝对值
- 第23课《全民族浴血奋战与抗日战争的胜利》导学案 高一上学期统编版(2019)必修中外历史纲要上
- 王守仁《英国文学选读》译文
- 中国近现代史纲要智慧树知到课后章节答案2023年下西南交通大学
- 电影院行业技术发展与创新趋势
- 个人劳动实践总结2000字
- 云南省初中信息技术考试操作题知识点
- 高血压讲解课件
- 术中获得性压力性损伤预防
- iso14064-2-中文版-温室气体
- 一种晶圆检测Mark点定位方法及应用与流程
- 部编版六年级数学下册《比和比例》评课稿
- 北师大版九年级全一册《电流的热效应》评课稿
评论
0/150
提交评论