MySQL数据库触发器从小白到精通
2023-06-13 09:19:42 时间
什么是触发器?
id int PRIMARY KEY,
name varchar(20)
create TRIGGER tt
触发条件,向user表中插入数据时启动触发器
BEFORE insert on user
检查表中每一行,对新插入的数据进行操作
for EACH ROW
执行操作
BEGIN
set new.id=UUID();
ddid int PRIMARY KEY,
ddname VARCHAR(20),
userid VARCHAR(50)
建立触发器名为tq
create TRIGGER tq1
触发条件,再dd表删除数据之后启动触发器
AFTER DELETE on user
检查表中每一行,对新插入的数据进行操作
for EACH ROW
执行操作
BEGIN
DELETE FROM dd WHERE old.id=userid;
END $
delimiter ;
我想要获取技术服务或软件
服务范围:MySQL、ORACLE、SQLSERVER、MongoDB、PostgreSQL 、程序问题
服务方式:远程服务、电话支持、现场服务,沟通指定方式服务
技术标签:数据恢复、安装配置、数据迁移、集群容灾、异常处理、其它问题
本站部分文章参考或来源于网络,如有侵权请联系站长。
数据库远程运维 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)
建立触发器
建立触发器名为ttcreate TRIGGER tt
触发条件,向user表中插入数据时启动触发器
BEFORE insert on user
检查表中每一行,对新插入的数据进行操作
for EACH ROW
执行操作
BEGIN
set new.id=UUID();
刚刚建立的触发器(查看当前数据库下全部触发器的代码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 触发器内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
我想要获取技术服务或软件
服务范围:MySQL、ORACLE、SQLSERVER、MongoDB、PostgreSQL 、程序问题
服务方式:远程服务、电话支持、现场服务,沟通指定方式服务
技术标签:数据恢复、安装配置、数据迁移、集群容灾、异常处理、其它问题
本站部分文章参考或来源于网络,如有侵权请联系站长。
数据库远程运维 MySQL数据库触发器从小白到精通
相关文章
- MySQL Error number: MY-013032; Symbol: ER_IB_MSG_1207; SQLSTATE: HY000 报错 故障修复 远程处理
- MySQL给用户授予数据库权限的实现(mysql给用户授予某数据库权限)
- MySQL表是否存在:检查指南(mysql表是否存在)
- MySQL中整数和日期处理实例总结(mysql整数日期)
- MySQL数据库字段属性研究(mysql数据字段属性)
- Mac下快速连接MySQL数据库(mac链接mysql)
- MySQL时间格式转换实践(mysql转时间格式)
- 计算MySQL的时间差异(mysql与当前时间差)
- MySQL存储过程详解:优势与应用(mysql存储过程是什么)
- MySQL主从复制:实现数据库高可用(mysql的主从复制)
- 如何快速停止 MySQL 数据库服务?25字概括告诉您!(如何停止mysql)
- MySQL技能如何成为你简历中的闪亮亮点?(mysql简历)
- MySQL的分布式架构:提高数据库的效率和可扩展性(mysql分布式)
- DBF格式数据如何导入MySQL数据库(dbf导入mysql)
- MySQL中使用USE关键字控制数据库(mysql中use关键字)
- 如何设置MySQL中BLOB字段的长度限制(mysql中blob长度)
- 深入了解MySQL数据库个人简介简单介绍(mysql个人简介)
- MySQL数据库从二进制存储到查询优化(binary mysql)
- 使用CMD探知MySQL数据库的地址(cmd查询mysql地址)
- MySQL 56前所未有的数据库性能提升(5.6mysql)
- MySQL中用别名进行除法运算(mysql中别名除法)
- MySQL 创表时的数量限制详解(mysql。创表限制数量)
- MySQL下载进度停滞不前,解决方法合集(mysql下载进度为0)
- MySQL上机报告总结 一份对于MySQL的实践经验分享(mysql上机报告总结)
- MySQL数据库无法显示密码的问题解决方法(mysql不显示密码)
- 解决方案MySQL数据库无法正常显示中文字符的问题(mysql不显示中文字符)