我的编程空间,编程开发者的网络收藏夹
学习永远不晚

MySQL数据库触发器从小白到精通

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

MySQL数据库触发器从小白到精通

先了解一下触发器,再来讨论是否能完全代替外键

什么是触发器?

概念:触发器(trigger)是SQL server 提供给程序员和数据分析员来保证数据完整性的一种方法,它是与表事件相关的特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由事件来触发,比如当对一个表进行操作( insert,delete, update)时就会激活它执行。触发器经常用于加强数据的完整性约束和业务规则等。 触发器可以从 DBA_TRIGGERS ,USER_TRIGGERS 数据字典中查到。SQL3的触发器是一个能由系统自动执行对数据库修改的语句。

通俗的来讲,触发器就是一个触发装置,装置里面存有一段操作。这个装置有触发条件,达到某个条件就会触发这个装置,触发装置就会执行存储的一段操作。

如何在数据库中建立触发器

建立触发器实例(关键词:trigger)

例一:建立一个用户表(用户ID,用户姓名),建立一个触发器(当用户表中插入数据时,自动生成一个全局唯一的ID)

先建立user表


create table user(
id int PRIMARY KEY,
name varchar(20)
);

建立触发器


-- 建立触发器名为tt
create TRIGGER tt
-- 触发条件,向user表中插入数据时启动触发器
BEFORE insert on user
-- 检查表中每一行,对新插入的数据进行操作
for EACH ROW
-- 执行操作
BEGIN 
set new.id=UUID();
END

刚刚建立的触发器(查看当前数据库下全部触发器的代码show triggers)

效果:向表中插入三个用户名,自动生成三个ID


insert user(name) VALUE('张三'),('李四'),('王五')

例二:再建立一个订单表DD(订单ID,商品名称,用户ID),建立一个触发器tq1(当删除一个用户时,该用户的订单也将删除)

建表


create table DD(
ddid int PRIMARY KEY,
ddname VARCHAR(20),
userid VARCHAR(50)
)

建立触发器


delimiter $
-- 建立触发器名为tq
create TRIGGER tq1
-- 触发条件,再dd表删除数据之后启动触发器
AFTER DELETE on user
-- 检查表中每一行,对新插入的数据进行操作
for EACH ROW
-- 执行操作
BEGIN  
DELETE FROM dd WHERE old.id=userid;
END $ 
delimiter ;

向表中添加两条数据

效果:删除user表中的用户,dd表中的记录也跟随删除

删除张三


delete from user WHERE name='张三'

触发器能否完全代替外键

  • 上面的例二如果用外键也可以实现同样的效果,那么是不是说明外键可以做到的,触发器都可以做到,外键做不到的触发器也可以做到呢?
  • 与外键相比,触发器的灵活性更高功能更多,可以执行更多功能在一定程度上可以代替外键,实现外键的功能。
  • 触发器也可用于强制引用完整性,以便在多个表中添加、更新或删除行时,保留在这些表之间所定义的关系。然而,强制引用完整性的最好方法是在相关表中定义主键和外键约束。如果使用数据库关系图,则可以在表之间创建关系以自动创建外键约束。

总结: 触发器在某些时候可以代替外键,并不是在所有情况都可以代替。外键和触发器也可以联合使用

到此这篇关于MySQL数据库触发器从小白到精通的文章就介绍到这了,更多相关MySQL 触发器内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

MySQL数据库触发器从小白到精通

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

从小白到数据库触发器专家:轻松掌握触发器的使用技巧

触发器是数据库中一种重要的机制,它可以在特定事件发生时自动执行预定义的操作。本文将介绍触发器的基本概念、使用场景、创建方法以及使用技巧,帮助您轻松掌握触发器的使用。
从小白到数据库触发器专家:轻松掌握触发器的使用技巧
2024-02-08

探索数据库触发器的无限潜力:从入门到精通

数据库触发器是数据库管理系统中用于监控并响应数据库事件的一组存储过程或函数。它们是控制数据库行为并保持数据一致性的强大工具。本文将带领您从入门到精通,探索数据库触发器如何帮助您构建更强大、更可靠的数据库系统。
探索数据库触发器的无限潜力:从入门到精通
2024-02-08

MySQL数据库 触发器 trigger

目录一、基本概念1、作用2、触发器的优缺点2.1、优点2.2、缺点二、创建触发器1、基本语法2、触发对象3、触发时机4、触发事件5、注意事项三、查看触发器四、触发触发器五、删除触发器六、触发器的应用1、完善2、优化一、基本概念触发器是一种
2022-06-16

从小白到高手:数据库性能调优101

数据库性能调优是一门艺术,需要兼顾系统复杂度、数据量、性能目标等多方面因素,本文将从多维度讲解数据库性能调优的技巧,帮助您从小白成长为高手。
从小白到高手:数据库性能调优101
2024-02-13

揭秘数据库触发器:一触即发的自动化精灵

数据库触发器是一种强大的机制,它允许您在数据库中发生特定事件时自动执行动作。这可以节省您的时间和精力,并确保数据的准确性。
揭秘数据库触发器:一触即发的自动化精灵
2024-02-08

详解MySQL数据库之触发器

1 引言本文是对MySQL中触发器的总结,从触发器概念出发,结合实例对创建触发器、使用触发器、删除触发器进行介绍。 2 触发器简介MySQL触发器和存储过程一样,都是嵌入到MySQL的一段程序。触发器是由事件来触发某个操作,这些事件包括IN
2022-05-20

从零到精通ASP Master页与页面布局:网站开发小白的进阶之旅

ASP Master页与页面布局是网站开发的基础知识,对于网站开发小白来说,掌握这两项技能非常重要。本文将从零开始,详细讲解ASP Master页与页面布局的原理与使用方法,帮助网站开发小白快速进阶。
从零到精通ASP Master页与页面布局:网站开发小白的进阶之旅
2024-02-04

编程热搜

目录