Mysql之触发器Trigger

SQL SERVER Trigger 触发器 触发器【trigger】是一种特殊的存储过程,它在表的数据变化时发生作用。触发器可以维护数据完整性触发器的作用就是保证参照完整性和数据的一致性。 阅读详情

一、什么是触发器

   简单来说就是当某个表发生某些操作(插入、删除、更新)时,自动触发预先编译好的多条sql语句

二、创建触发器

   模式如:create trigger trigger_name 

                trigger_time 

                trigger_event on table_name 

                for each row 

                trigger_stmt

  简述四个参数trigger_name 、trigger_time、trigger_event 、trigger_stmt

    trigger_name : 触发器名称  用户自定义

    trigger_time: 触发时机  取值为before或者after

    trigger_event:触发事件  取值为select 、update、delete ....

    trigger_stmt:触发事件之后执行的sql语句,可以是单条也可以是多条sql语句

 由此可见可以建立6种触发器:before select 、 after select 、 before update 、after update 、 before delete 、after delete

 需要注意的是,在一个表上面不可以创建两个或者两个以上的相同类型的触发器,上面说的只是常见的类型,对于trigger_event的取值还有一些,因为我暂时还未遇到,这里就不载赘述,想了解的可以自己百度一下,我能做的就是把我会的总结下来展示给大家,让大家少走一些弯路。 

  对于trigger_stmt可以是单条sql语句也可以使用begin ... end 定义多条sql语句,这里对单条的就不多说了,和我们经常用的sql语句没什么差别,现在说一下begin ..... end的用法

   begin .... end:

      begin 

        [statement_list]

     end 

     其中statement_list就是多条sql语句,用分号隔开,也就是说分号暂时不能够作为结束符了,必须使用另外一种符号代替,可以使用&&来代替,这样的话,在创建触发器时就不会因为分号是结束符的问题,无法创建触发器,(简单来说创建整个触发器的过程就是一条sql语句,既然是sql语句就必须有结束符,又因为分号在这里只能作为一个statement_list的内容,所以必须换另外的结束符来代替分号),在创建触发器之前先声明一个新的结束符 使用delimiter 来实现  (比如我使用 && 来作为结束符  delimiter &&  后面不用加分号,就这些内容即可)

 创建触发器的实例:

  首要的条件是创建两个表:students和schools

    创建students的代码

create table students (id int not null primary key auto_increment , name varchar(100) not null , school_id int not null default 1 );

   创建schools的代码

create table schools (id int not null primary key auto_increment  , name varchar(100) not null , counts not null default 0);

  添加外键

alter table students add constraint student_school foreign key (school_id) references schools(id) ;

  给schools添加一条数据

insert into schools (name ) values ('北京大学');

 结果如图所示

  


  现在开始添加触发器(触发器描述:创建一个触发器,当每向students表中添加一条数据时,schools就加1)

  创建之前先将结束符改一下

delimiter &&
  创建触发器
create trigger student_school 
after 
insert on students for each row 
begin  
update schools set counts = counts + 1 where new.school_id = id; 
end &&

  最后将结束符变为 分号

  

delimiter ;

最终的效果图:

 

  

 我感觉需要必须补充的一点就是 new和old在触发器预处理sql语句中的应用

在 INSERT 型触发器中,NEW 用来表示将要(BEFORE)或已经(AFTER)插入的新数据;
在 UPDATE 型触发器中,OLD 用来表示将要或已经被修改的原数据,NEW 用来表示将要或已经修改为的新数据;
在 DELETE 型触发器中,OLD 用来表示将要或已经被删除的原数据;
使用方法: NEW.columnName (columnName 为相应数据表某一列名)

三、查看触发器

  show triggers [from schema_name]

四、删除触发器

   drop trigger [if exists] [schema_name.] `student_school`; 

   需要注意的是符号`



  五、总结

  其实我的目的是修改某个表中的数据时,通过修改的数据来改变该表中的另一个属性,比如:当某个商品卖完时(即:数量为0时),每次修改之后判断一下是否还有剩余库存,如果没有的话修改该商品的状态未已经卖完,否则为还有剩余。这个很明显的是在商品数量修改前后都可以判断,然后执行预定一点额sql语句来更新该商品的状态,但是很失望的是,结果我实现不了,大概意思好像是,这个表正在执行某个操作,无法再进行其他的操作,试了几遍之后,发现结果依然如此,我只好另辟蹊径,我想的办法是在执行update语句时,添加一个if函数,这个问题就完美的解决了,虽然没有用到触发器,但是还是在这里总结下来,希望可以帮到大家,如果大家对我的看法有什么问题,可以随时批我,会立马改正的


【SQL触发器详解】 触发器(Trigger)是SQL中的一种特殊类型的存储过程,它会在特定的数据库事件发生时自动执行。这些事件通常涉及对表的插入、更新或删除操作。表,我们希望在插入新员工记录时,自动将员工的入职日期设置为当前日期。,我们希望在通过视图插入数据时,自动将数据插入到。表示对每一行插入操作都执行触发器,表示对每一行更新操作都执行触发器,表示对每一行插入操作都执行触发器,指定了触发器在插入操作之前执行,指定了触发器在更新操作之后执行,指定了触发器替代视图的插入操作,表时,将更新前的数据记录到。表,我们希望在每次更新。 阅读详情

相关推荐

Axure RP9中继器表格制作全攻略:从入门到实战

在原型设计领域,数据展示型页面往往需要动态表格来支撑真实业务场景的交互验证。Axure RP9中的中继器(Repeater)正是实现数据驱动表格的核心组件,它通过“模板容器+数据集+事件接口”的机制,让原型从静态示意图升级为可响应用户操作的微型系统。理解中继器的底层逻辑,是掌握高效原型制作的关键。它能够轻松实现数据增删改查、筛选排序、分页联动、行级交互等复杂功能,广泛应用于后台管理系统、数据看板、电商订单列表等高频场景。本文以用户管理列表为例,完整梳理了从创建中继器、绑定数据到实现条纹表格、模糊搜索、分页展

weixin_34122810的博客 362

sql之触发器trigger(3)

知识点: 什么是触发器 创建、撤销、查看触发器 触发器的作用(应用场景) 触发器和储存过程的区别 注意: 1.MySQL中,一个表在相同触发时间的相同触发事件只能创建一个触发器。如触发事件insert,触发时间为after的触发器只有一个。 2.MySQL中,触发器执行的顺序是before触发器、表操作(insert、update和delete)和after触发器 create ...

yiguang_820的博客 1907

网页标题SEO优化全攻略:从检查到整改的完整指南

在搜索引擎优化(SEO)中,网页标题是决定搜索排名与用户点击的关键因素。它不仅是浏览器的标签名称,更是搜索引擎理解页面主题的首要信号,直接影响页面的收录概率与展示效果。理解title标签的工作原理,是掌握搜索流量入口的第一步。一个合格的网页标题需要在长度、关键词布局、唯一性等多个维度达到平衡,并避免词堆砌或品牌词前置等常见误区。通过查看源代码、使用爬虫工具或搜索引擎指令,可以快速定位标题问题,并针对截断、乱码、重复标题等典型故障进行排查。科学优化标题能显著提升页面在搜索结果中的竞争力,是每个站点都应重视的基

weixin_34267123的博客 1049

SQL之trigger触发器

触发器是一种数据库对象,一般与一个表相关联,当对该表做出某种修改操作(INSERT、DELETE、UPDATE)时,它会自动地予以执行。触发器可以查询其它表,并可以包含复杂的SQL(或Transact-SQL)语句。 触发器经常用于加强数据的完整性约束和业务规则等。 由于每个厂商对trigger的实现不同,这里以SQL Server为例。 特点 1)它与表紧密相连,可以看作表定义的一部分 2)它不能通过名称被直接调用,更不允许带参数,而是当用户对表中的数据进行修改时,自动执行 3)它可以用于SQL Serv

学习永无止境 5808

Pandas DataFrame渲染三层次:终端显示、样式美化与交付封装

DataFrame渲染远不止print或head调用,本质是面向不同角色(开发者、业务方、法务)和场景(调试、汇报、合规交付)的数据呈现工程。其核心原理在于控制显示协议(__repr__)、声明式样式编排(Styler)与结构化导出(to_excel/to_html)三层能力的协同。技术价值体现在提升可读性、强化关键信息识别、保障交付可审计性;典型应用场景包括Jupyter快速核验、PPT嵌入表格、客户PDF报告生成。本文聚焦pandas DataFrame渲染,深入解析display配置、Styler执行

weixin_30684743的博客 2003

Qt表格控件表头设置:QTableView与QTableWidget选型与配置指南

在Qt桌面应用开发中,表格控件的表头(QHeaderView)是用户交互的第一触点,其核心能力涵盖点击排序、拖拽调整、样式定制、右键菜单及多级结构等。表头行为本质由底层架构决定:QTableView严格遵循Model/View分离,表头状态完全依赖model的headerData()和sort()实现;而QTableWidget作为封装体,提供便捷接口但隐藏了数据流约束,易引发排序失效、样式不响应等典型问题。理解二者在样式渲染、交互行为与数据绑定三个维度的技术差异,是实现高性能、可维护表格界面的关键前提。本

weixin_33946605的博客 255

SQL-触发器(trigger)的详解以及代码演示

触发器是一种特殊的存储过程,但是触发器不存在输入和输出参数,所以不能被显式的去调用,而是与特定的表相关联,当表中的数据发生变化时,触发器被激活并执行其定义的SQL代码。触发器可以是行级触发器(针对每一行数据变化)或语句级触发器(针对整个SQL语句的变化),行级触发器允许对每一行单独处理,而语句级触发器则在整个操作完成后执行一次。

weixin_53216033的博客 3830

Echarts数据可视化实战:图表配置、大屏适配与高频问题排查

数据可视化是现代Web应用与业务决策中的关键环节,从基础报表到指挥中心大屏,图表库的选择直接影响开发效率与展示效果。Echarts作为Apache基金会下的开源可视化库,凭借丰富图表类型、完善的配置项和优秀的Canvas渲染性能,成为前端与数据分析领域的主流工具。本文从实际工程视角出发,围绕柱状图、折线图、饼图、地图等核心图表配置,讲解选型思路、交互联动、主题封装以及大屏适配经验,并针对Vue3集成、pxtorem转换、图表初始化失败等高频问题给出排查方案。通过智能网联汽车人才需求案例,完整演示如何将业务数

weixin_34081595的博客 358

Sqribble:轻量级文档自动化流水线实战解析

文档自动化是现代内容生产的核心能力之一,指通过结构化规则与模板驱动,将文字、图片、表格等素材稳定、可复现地转化为出版级交付物(如PDF、HTML)。其底层原理并非依赖生成式AI,而是确定性规则引擎对排版逻辑、分页算法、样式约束的精准封装,技术价值在于消除人工重复劳动、保障跨版本一致性、实现品牌视觉统一。典型应用场景包括企业白皮书、培训手册、销售话术包、技术文档等需高频、合规、批量输出的领域。本文以Sqribble为典型案例,深入剖析其云原生架构、五大子系统协同机制及模板即领域知识的设计哲学,揭示轻量级文档流

weixin_30896511的博客 323

模板驱动型文档自动化:结构化内容的确定性交付方案

文档自动化是企业知识运营的基础能力,其核心在于将固定结构、明确数据源、高频交付的文档生产过程标准化。模板驱动型文档自动化(Template-Driven Document Automation)通过解耦内容逻辑与视觉呈现,依托占位符、条件逻辑与数据验证等机制,实现100%可控、可复用、可审计的确定性输出。相比AI生成侧重创造性表达,该技术更适用于销售提案、合规报告、法律函件等强规范场景,显著降低人工返工、格式错乱与合规风险。Sqribble等专业工具进一步封装了中文字体渲染、流式分页、API安全对接等工程难

huqiyes的专栏 425

纯CSS实现教育时间轴与技能标签模块:语义化、响应式与无障碍实践

教育经历和技能展示是个人技术网站的核心内容模块,本质属于结构化信息呈现问题。其底层原理涉及HTML语义化标记(如<ol>表达时间序列、<dl>定义术语关系)、CSS渲染机制(Flex/Grid布局控制、伪元素装饰、box-sizing模型)以及跨浏览器兼容性处理。技术价值在于零JavaScript依赖下达成专业级可读性、响应式适应力与WCAG 2.1 AA无障碍合规。典型应用场景包括前端工程师作品集、自由职业者个人站、转行程序员简历页等静态站点构建。本文聚焦纯CSS方案,深入解析时间轴圆点定位、技能标签自适

weixin_30719711的博客 467

Windows Phone 7开发启蒙:Panorama、Pivot与IsolatedStorage实战指南

移动应用开发中的导航架构与本地存储是跨平台通用的核心能力。Panorama和Pivot代表了早期触控设备上基于手势的沉浸式导航范式,其设计逻辑深刻影响了现代Flutter TabBar、React Native ScrollView嵌套及iOS SwiftUI TabView等实现;IsolatedStorage则体现了沙盒化、强隔离的轻量级持久化思想,与今日的SharedPreferences、UserDefaults、Zustand持久化插件一脉相承。理解这三者背后的约束驱动设计(constraint-

rongdmmap的博客 346

Sqribble:模板驱动的云原生文档操作系统解析

文档自动化并非简单排版提速,而是基于结构化语义与可执行模板的出版范式升级。其核心原理在于内容归一化(将多源文本统一为带层级标签的树状模型)与布局引擎的确定性渲染(分页、目录、页眉页脚全自动注入),技术价值体现在消除机械性格式劳动、保障跨设备输出一致性、支持合规归档(PDF/A-1b)及轻量协作。典型应用场景包括市场白皮书生成、客户成功案例集制作、SaaS销售资料批量定制等。本文深入拆解Sqribble的七层架构与模板驱动机制,揭示其如何以非AI方式实现专业级文档生产力跃迁。

weixin_30437847的博客 360

AOSP -- 第一章 概述

在 AOSP 开源底层与面向消费者的设备之间,还存在一层厂商定制层。厂商定制界面品牌核心修改内容三星一体界面自定义系统界面、多窗口增强、桌面模式、诺克斯安全体系、S Pen 手写笔适配、自研相机架构小米MIUI / 澎湃 OS重度定制界面、自研桌面、控制中心、安全应用、应用双开功能OPPO / 一加色彩 OS / 氧 OS自定义息屏显示、桌面负一屏、禅定模式、定制图库与相机谷歌像素原生体验材质你动态取色主题、像素专属桌面、张量芯片专属优化、像素独占功能华为EMUI / 鸿蒙。

dengfuma的专栏 291

Vue+Node.js+ElementUi进销存系统开发实战:从架构设计到部署上线

进销存系统是企业信息化管理的核心工具,覆盖采购、销售、库存三大业务流程,数据实时性与可追溯性是其关键诉求。前后端分离架构作为现代Web应用的主流模式,通过接口层与展示层解耦,显著提升开发效率与维护性。Vue作为渐进式前端框架,搭配ElementUi组件库,可快速搭建数据密集的管理后台;Node.js基于异步I/O模型,提供轻量且高并发的接口服务能力。库存流水设计、事务处理、安全库存预警等工程实践,保障了系统数据的一致性与准确性。该系统适用于百货商场、连锁门店等零售场景,能够解决Excel流转低效、库存不实时

weixin_34115824的博客 242

Sqribble:面向专业文档生产的模板化操作系统

文档自动化并非简单排版提速,而是基于语义化结构、行业规则封装与云原生渲染的系统工程。其核心在于将出版规范、合规要求、无障碍标准等专业知识编译为可配置、可验证、可继承的模板规则集,实现从内容输入、智能净化、物理级排版到多格式交付的端到端闭环。这类工具的价值不在于替代创作,而在于通过建设性约束与确定性输出,保障技术白皮书、客户方案、ESG报告等高可靠性文档的批量、稳定、低错误率生产,尤其适配市场、技术文档、教育及合规敏感型场景。

weixin_33713350的博客 399

SQL 触发器

SQL 触发器

Alkali!的博客 9494

模板驱动文档自动化:从填空题到智能装配流水线

文档自动化并非简单排版提速,而是以模板为中枢、数据为血液、逻辑为神经的系统工程。其核心在于将重复性文档解构为可配置的结构化单元,通过字段绑定、条件渲染与样式继承实现内容精准装配,从而保障品牌一致性、数据实时性与法律合规性。相比AI生成易失控、脚本开发难维护,模板驱动方案让业务人员也能自主迭代文档产出,广泛应用于客户方案、服务报告、合同协议等标准化场景。本文深入解析Sqribble为代表的模板驱动架构,覆盖四层模型、数据绑定铁律与零代码落地实践。

weixin_30423977的博客 367
上一篇: 安装mysql5.5.*版本
下一篇: Maven初学者
JavaWeb_Hao
博客等级 码龄9年 21粉丝 73原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值