触发器的概念:
触发器是一种特殊的存储过程,它可以在插入、删除或者修改表中数据时触发执行,它比数据库本身的标准功能具有更加精细以及复杂的数据逻辑控制能力
触发器主要具有以下作用:
1.安全性。可以基于数据库的值使用户具有操作数据库的某种权利。
# 可以基于时间限制用户的操作,例如不允许下班后和节假日修改数据库数据。
# 可以基于数据库中的数据限制用户的操作,例如不允许股票的价格的升幅一次超过10%。
2.审计。可以跟踪用户对数据库的操作。
# 审计用户操作数据库的语句。
# 把用户对数据库的更新写入审计表。
3.实现复杂的数据完整性规则
# 实现非标准的数据完整性检查和约束。触发器可产生比规则更为复杂的限制。与规则不同,触发器可以引用列或数据库对象。例如,触发器可回退任何企图吃进超过自己保证金的期货。
# 提供可变的缺省值。
4.实现复杂的非标准的数据库相关完整性规则。触发器可以对数据库中相关的表进行连环更新。例如,在auths表author_code列上的删除触发器可导致相应删除在其它表中的与之匹配的行。
# 在修改或删除时级联修改或删除其它表中的与之匹配的行。
# 在修改或删除时把其它表中的与之匹配的行设成NULL值。
# 在修改或删除时把其它表中的与之匹配的行级联设成缺省值。
# 触发器能够拒绝或回退那些破坏相关完整性的变化,取消试图进行数据更新的事务。当插入一个与其主健不匹配的外部键时,这种触发器会起作用。例如,可以在books.author_code 列上生成一个插入触发器,如果新值与auths.author_code列中的某值不匹配时,插入被回退。
5.同步实时地复制表中的数据。
6.自动计算数据值,如果数据的值达到了一定的要求,则进行特定的处理。例如,如果公司的帐号上的资金低于5万元则立即给财务人员发送警告数据。
简单案例:
DELIMITER //
DROP TABLE IF EXISTS tab1 //
CREATE TABLE tab1(
tab1_id varchar(11)
)//
DROP TABLE IF EXISTS tab2//
CREATE TABLE tab2(
tab2_id varchar(11)
)//
DROP TRIGGER IF EXISTS t_afterinsert_on_tab1//
CREATE TRIGGER t_afterinsert_on_tab1
AFTER INSERT ON tab1
FOR EACH ROW
BEGIN
insert into tab2(tab2_id) values(new.tab1_id);
END//
INSERT INTO tab1(tab1_id) values('0001')//
SELECT * FROM tab1//
SELECT * FROM tab2//
DROP TRIGGER IF EXISTS t_afterdelete_on_tab1//
CREATE TRIGGER t_afterdelete_on_tab1
AFTER DELETE ON tab1
FOR EACH ROW
BEGIN
delete from tab2 where tab2_id=old.tab1_id;
END//
DELETE FROM tab1 WHERE tab1_id='0001'//
SELECT * FROM tab1//
SELECT * FROM tab2//
分享到:
相关推荐
完整版 MySQL8.0从入门到精通 MySQL数据库教程 第12章 触发器(共11页).ppt 完整版 MySQL8.0从入门到精通 MySQL数据库教程 第13章 MySQL权限与安全管理(共30页).ppt 完整版 MySQL8.0从入门到精通 MySQL数据库教程...
《MySQL数据库入门》是针对初学者的一本指南,旨在帮助读者快速掌握MySQL的基本概念和操作。这本教材的配套资源包含了一系列辅助学习材料,如教学PPT、教学大纲、教学设计、课后习题及答案,以及源代码,旨在提供全...
不断学习新的MySQL特性,如存储过程、触发器、视图、索引、备份与恢复等,同时,结合实际项目练习,如设计新闻发布系统或论坛管理系统的数据库,以提升实战技能。持续学习和实践是精通MySQL的关键。 总的来说,这个...
这个"MySQL数据库入门"压缩包提供了一系列的学习资源,包括PPT、PDF文档和代码示例,帮助初学者快速掌握MySQL的基础知识。 首先,让我们从标题开始。"MySQL数据库入门"意味着这个教程将覆盖数据库的基础概念,如何...
MySQL触发器知识点 MySQL触发器是指在预定义的事件发生时自动执行的特殊存储过程。触发器可以与表事件相关,例如Insert、Update或Delete事件。触发器可以基于一个表创建,但是可以针对一个或多个表进行操作。触发器...
这份“MySQL 5.7入门到精通”的PDF教程是学习和掌握MySQL数据库技术的重要资源,尤其对于初学者来说,它提供了清晰的路径和详尽的指导。 教程的“带目录”特性意味着读者可以轻松地定位到特定的主题或章节,方便...
这份“MySQL5.7从入门到精通”的资源旨在为初学者和有经验的开发者提供一个全面的学习指南,通过高清带书签的PDF文档,使得学习过程更加高效和便捷。 一、MySQL基础 MySQL的基础部分通常包括数据库的概念、安装与...
### MySQL入门+进阶资源合集 #### 一、MySQL基础知识与入门 ##### 1.1 MySQL基础概念 - **数据库(Database)**:是用于存储数据的逻辑容器,它能够高效地管理和组织数据。 - **表(Table)**:是数据库中用来存储...
这份"MySQL数据库入门到高级笔记快速学习pdf版本"提供了从基础到高级的全面教程,适合不同水平的学习者。以下将详细解析其中涉及的主要知识点: 1. **基本操作**: - **启动与关闭MySQL服务**:可以通过`...
本教程“MySQL从入门到精通数据库系列视频”旨在帮助开发者系统地学习和掌握MySQL的各种功能和操作,从基础概念到高级技巧,全方位提升数据库管理能力。 首先,你需要了解数据库的基础知识,包括数据存储、数据库...
4. 高级PHP和MySQL:涵盖面向对象编程(OOP)在PHP中的应用,MySQL的高级特性,如索引、视图、存储过程和触发器,以及PHP的session和cookie管理,文件上传下载,邮件发送等实用功能。 5. 实战项目:通过构建实际的...
学习路线已为你标好,初学者不必走弯路浪费时间,一步到位实践精通 ...第二阶段---MySQL触发器.pdf 第二阶段---如何导入导出MySQL数据库.doc 第二阶段---正确版MySgl绿色版配置及使用详解.doc ..............
《PHP+MySQL从入门到精通》是一本专为初学者设计的编程教程,旨在帮助读者掌握PHP和MySQL这两种核心技术,并能结合使用进行Web开发。启明工作室编著的这本书通过丰富的实例和清晰的讲解,引领读者逐步深入这两个领域...
《MySQL从入门到精通》这本书是为初学者和有一定基础的数据库管理员设计的,它全面覆盖了MySQL的基础知识、进阶技巧以及高级应用。MySQL是一个广泛使用的开源关系型数据库管理系统,以其高效、稳定和易用的特点深受...
MySQL中的触发器是一种数据库对象,它允许在特定的数据操作(如INSERT、UPDATE、DELETE)发生时自动执行预定义的SQL语句。触发器是数据库系统中的一个重要特性,它可以帮助实现复杂的业务规则和数据完整性约束,而...
- 提供的源代码可能包含示例数据库的创建脚本、查询语句、存储过程、触发器等,这些都是学习和实践MySQL操作的重要资源。 - 通过阅读和执行这些源代码,可以加深对MySQL语法和功能的理解,提升实际操作能力。 ...
本书"MySQL从入门到精通"旨在帮助读者从零基础开始,逐步掌握MySQL的使用和管理技巧,从而更好地服务于后端开发工作。 1. **MySQL简介** MySQL是一种开源、免费的SQL数据库,由瑞典的MySQL AB公司开发,目前被...
### MySQL从入门到精通知识点梳理 #### MySQL基础知识 - **数据库基本概念** - **数据库管理系统(DBMS)**:是管理数据库的系统软件,其主要功能包括数据定义、数据操纵、数据库运行管理和数据库的建立与维护等。 ...
这个“MySQL入门很简单课件”旨在为初学者提供一个易懂且全面的学习路径,帮助他们快速掌握MySQL的基础知识。 首先,我们要理解数据库的基本概念。数据库是一个组织和存储数据的系统,它允许用户以结构化方式访问和...
以下是对"mysql5.5从入门到精通.pdf"文档中可能涵盖的一些关键知识点的详细解释: 1. **安装与配置**: - MySQL的安装过程,包括Windows、Linux和macOS等不同操作系统的安装方法。 - 配置my.cnf文件,调整数据库...