浅入浅出带有主外键约束的触发器

网上有很多触发器的例子,但表之间都是没有主外键约束的,下面做一个例子实现带有主外键约束的触发器。
现有两张表:部门表(department) deNum int primary key --部门编号
deName nvarchar(50) --部门名称
员工表(employee) emNum int primary key --员工编号
deNum int foregin key
references department(deNum)--所属部门
需求:当更新主表的部门编号时(当然实际中,我们通常是不会去更新这个字段的)同时更新从表的所属部门编号。我们用触发器实现:
create trigger tri_updateDeNum
on department
for update
as
begin
declare @oldid int,
@newid int
select @oldid=deNum from deleted--获得更新前的id
select @newid=inserted.deNum from department,inserted where department.deNum=inserted.deNum--获取更新后的id
--if(@oldid is null)--判断oldid是否已经取到
--print('@oldid is null')
--if(@newid is null) 判断newid是否已经取到
--print('@newid is null')
if(@oldid is null) or (@newid is null) or(@oldid=@newdi)
--print('failture')
return
--更新从表
update employee set deNum=@newID where deNum=@oldID
end
Lite-IDEA:专为Spring Boot轻量开发设计的开源IDE Spring Boot作为主流Java微服务框架,其‘约定优于配置’特性对开发工具提出新要求——需兼顾启动速度、低资源占用与开箱即用的工程规范支持。Lite-IDEA并非IntelliJ IDEA简化版,而是基于IntelliJ Platform深度裁剪的垂直IDE,通过移除JetBrains Runtime、重构索引机制、精简插件体系,实现2秒级启动与380MB内存占用,精准解决Java初学者入门难、POC原型开发效率低、边缘设备IDE不兼容等现实痛点。它内置Spring Boot四层架构生成器、Actu 阅读详情

相关推荐

bcftools实战指南:从VCF文件处理到变异分析全流程解析

在基因组数据分析中,VCF(Variant Call Format)文件是存储基因序列变异信息的标准格式,广泛应用于群体遗传学和生物信息学研究。其核心原理是通过结构化文本记录SNP、INDEL等变异位点的基因型、质量值和注释信息。掌握高效处理VCF文件的技术,对于提升变异检测、数据清洗和下游分析的工作流效率具有重要价值。在生物信息学工具生态中,bcftools作为处理VCF/BCF文件的瑞士军刀,通过模块化设计实现了数据查询、过滤、统计和格式转换等核心功能。其流式处理架构支持管道化操作,能有效应对海量基因组

weixin_29081703的博客 323

触发器的定义——解决主外键约束与触发器冲突问题

触发器的定义(sql server2008) 解决主外键约束与触发器冲突问题 实验题目 题目六: 药品(编号,名称,价格,厂商) 处方(药品编号,数量,医生编号) 医生 (编号,姓名,科室,职称) 建立药品的delete 触发器,只有当此药品品没有人买时才可删除,若有处方记录不能删除。 插入的数据 insert into medicine (mno,mname,price,industno)values(1,'阿司匹林',5.5,'北方制药'); insert into medicine (mno,mn

qq_45813040的博客 4143

Ubuntu使用cmake出现Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed

解决 Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed

qq_44225529的博客 1万+

MYSQL_使用外键约束(constraint)或触发器(trigger)来进行级联更新、删除

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33757911的博客 659

基于 Datawhale 开源量化投资学习指南(10):基于 LightGBM 的量化选股

通过本篇文章,我们深入探索了如何运用 LightGBM 机器学习模型实现量化选股。首先,我们通过获取股票的历史数据,进行特征工程和标签制作,将选股问题转化为一个分类问题。接着,我们使用 LightGBM 训练模型,并在验证集和测试集中评估了模型的表现。该选股策略的核心在于结合机器学习算法,从历史数据中寻找能够捕捉股票短期涨跌的关键特征,从而为投资者提供辅助决策支持。虽然本文的模型取得了一定的效果,但这只是量化投资领域的一小部分。

不想宅的冷同学 1347

海思MPP平台千兆以太网驱动集成与测试指南

千兆以太网(GE)是嵌入式视觉系统中音视频流传输与边缘控制的核心物理接口,其底层驱动需兼顾DMA高效调度、中断实时响应与PHY链路稳定性。在Linux嵌入式环境中,GE驱动通常基于net_device框架实现,并深度耦合于SoC专用媒体处理平台(如海思MPP),通过硬件抽象层(HAL)屏蔽寄存器操作,提供零拷贝、RGMII时序适配、描述符环管理等关键能力。技术价值体现在降低CPU负载、保障1080p@30fps实时推流、支持ONVIF/RTSP协议交互及固件远程升级。典型应用场景包括网络摄像机(IPC)、A

weixin_42599908的博客 90

【SQL】触发器与约束

先来吃个栗子 现在数据库中有两张表,一张正式员工表,一张离职员工表。 比如赵二现在要离职,要从员工表里面删除,但是离职表里面要添加上赵二,如果你这样写代码: 获得赵二ID 建立删除赵二的SQL语句 链接数据库进行删除 建立添加赵二的SQL语句 链接数据库进行添加 好,任务简单也还可以,但是现在又有一张部门表,部门的主键作为员工表中的外键存在,现在公司要裁掉一整个部门,你该怎么办? 难 道 这 样...

北平~ 2995

从AP到ADSP:高通8650 AudioReach中GSL-Passthru-GPR的数据通路剖析

本文深入剖析了高通骁龙8650平台AudioReach架构中,音频数据从应用处理器(AP)到音频数字信号处理器(ADSP)的完整传输路径。重点解析了GSL(Graph Service Layer)如何封装命令,并通过Passthru驱动与GPR(Generic Packet Router)协同工作,实现跨处理器的高效、异步数据交换,揭示了现代手机复杂音频系统背后的核心通信机制。

cherry的博客 536

【数据库】触发器 两张表同步更新,带有外键约束的id

正常情况下的设置了外键约束的时不允许别修改其他值的, 主键想更新成其他值也不允许 所以思路就是先暂时关闭外键,然后先进行修改,再重新开启外键约束 启动禁用外键的代码: --启用/禁用指定表所有外键约束 altertabletablenameNOCHECKconstraintall altertabletablenameCHECKconstraintall 实例: --5、 创建一个部门的触发器,当部门id更新时,薪水表中对应的部门id全部更新 drop ...

Shino_jie的博客 1510

2026四款AI原生IDE实测:Trae、Qoder、CodeBuddy、Cursor能力边界深度解析

AI原生IDE正从代码编辑器演进为开发者智能工作流中枢,其核心在于对上下文理解、AST编辑意图建模与多模态任务调度的工程化实现。区别于传统插件式AI辅助,真正的AI原生IDE需具备知识库嵌入、符号图索引、操作链固化等底层能力,从而支撑Figma转码、N+1查询修复、跨语言迁移等复杂场景。Trae强调中文语境与企业规范的强绑定,Qoder聚焦AST级编辑轨迹预测,CodeBuddy通过IDE/插件/CLI三态划分控制权边界,Cursor则以云端Agent实现开发任务的时空并行。本文基于真实项目压测,揭示免费版

ctk87443的博客 2467

脑电信号处理实战 01 | 从 0 跑通第一个 EEG 分析:加载、滤波、频谱与“睁眼闭眼“

本文以 UCI 公开数据集"EEG Eye State"为例,从零走通脑电处理的完整流水线——数据加载、1–40 Hz 带通滤波、Welch 功率谱、频带功率、通道相关性与箱线图质控、睁闭眼对比和时频分析,并用 8 张科研风格图层层揭示这份数据中的伪迹与通道重复问题,说明"流程跑得通不等于结果可信,质量控制永远先行"。

qq_53529450的博客 116

oracle禁用触发器,主外键约束

alter table 表名 disable all triggers–禁用指定表相关的触发器 alter table 表名 enable all triggers–启用指定表相关的触发器 select T.STATUS,T.* from user_triggers t where t.TABLE_NAME=表名–查触发器生效状态 –禁用/启用主/外键约束 alter table 表名 disab...

qq_38401601的博客 387

4.Simulink基础建模操作——加减乘除运算

加减乘除运算

FPGA/MATLAB学习教程/源码/项目合作开发 9550

【SQL触发器】类型 FOR 、AFTER、 Instead of到底是什么鬼

前言: 上一篇博客讲述了触发器的基本概念,触发器什么时候用,为什么用!这篇博客将简述触发器的类型,由于FOR触发器与AFTER触发器是一个作用,所以触发器分为FOR触发器,与Instead of 触发器! 1、AFTER(for)触发器 (操作后) after触发器是指在操作成功后,所采取的一些动作, 2、instead of 触发器(操作前) 对数据的操作只是一个“导火索”而已,真正起作用的是触...

李光 未来科技 3万+

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

牛腩新闻发布系统—instead of 触发器

  数据库中的表都是通过主外键联系的,因此它们之间也就有了约束,所以当我们删除一条记录时,如果此条记录的主键是另一张表中的记录的外键时,那么就删除不了。视频中老师说有好几种办法,下面我说一下我了解的三种方法 。 第一种:将删除规则改为级联操作   1. 打开数据库中的数据库关系图   2. 修改 Insert和Update规范   首先点击两张表之间的关系,修改右边的删除规则为“级联”。这时再...

张伟杰 480

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

PostgreSQL主外键延迟测试

默认建立主外键会扫描已有的记录来确定是否有不符合条件的记录,这一过程hang住后续的update操作,因此如果表很大,会对业务产生比较大的影响。//需要superuser权限。实际上PostgreSQL实现主外键主要用的是trigger,只是trigger是PG内部实现的,如下。在某些特殊情况下需要先插入字表,但是关联字段的值并不存在与主表中该如何处理。可以使用not valid参数来避开对已有数据的验证。第二种情况,如果对已有数据的两张表要建立主外键关系。3. 插入不满足条件的记录。

风的专栏 595

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

C# 如何物理删除有主外键约束的记录?存储过程实现

十年河东,十年河西,莫欺少年穷 本篇主旨是如何物理删除有主外键约束的记录!那么,我们从主外键走起! 下面新建三张有主外键约束的表,分别为:系/学院表,专业班表,学生表,如下: CREATE TABLE Dept--系/学院表 ( DeptId int identity(1,1) primary key, DeptName nvarchar(50),--系名称 AddTime d...

weixin_34092455的博客 206

MySQL实验八 创建触发器

MySQL实验八 创建触发器 一、实验环境: Win 10 mysql8.2 二、实验内容与完成情况: -- 3.1 创建触发器 -- (1) 使用 MySQL 命令行或者 workbench(或者 Navicat for MySQL)为员工医疗 -- 保险系统(实验 03 创建的 7 个表)创建触发器“insurance_row_tri”,当删除医保表 -- “insurance”中某医保卡号的记录时触发,输出“XX 卡号的记录删除成功!”。删除 -- 某记录,并查看结果。 -- //创建触发器 de

zinc1234596的博客 3947

mysql主外键删除顺序,mysql-具有外键约束的删除顺序,

我有一个包含三个表和外键“删除时”约束的架构,如下所示:| -> FK (cascade) -> |Organisation | | Users| - FK (cascade) Categories -> FK(restrict) -...

weixin_30175731的博客 778

mysql主外键删除顺序,具有外键约束的删除顺序,

I have a schema with three tables and foreign key 'On Delete' constraints as below:| -> FK (cascade) -> |Organisation | |...

weixin_34777998的博客 306

oracle添加序列器,Oracle 建表,添加主外键,序列,触发器

select * from user_objects where object_type='TABLE';--删除contact表,包括删除与其相关的约束drop table contact cascade constraints--创建contact表create table contact(id number(6) not null primary key,first_name varchar...

weixin_34864191的博客 408

触发器

前言 触发器「trigger」是SQL server 提供给程序员和数据分析员来保证数据完整性的一种方法 它是与表事件相关的特殊的存储过程 它的执行不是由程序调用,也不是手工启动,而是由事件来触发,当对一个表进行操作「 insert,delete, update」时就会激活它执行 区别 触发器与存储过程的唯一区别是触发器不能执行EXECUTE语句调用,而是在用户执行Transact-SQL语句时自...

刘玉彬 廊坊师范学院信息技术提高班 十四期 256

详讲SQL触发器

什么时候用到触发器呢?最常用的地方就是几张表有主外键的约束。你只删除一个表里的数据是不能成功的,必须要把几种表的数据同时删除。这个时候,就是被动除法一些事件,用触发器最合适。我从头来介绍这个触发器。先建立三张表,分别是新闻类型表,新闻表,评论表。其中评论表依赖新闻表,新闻表依赖新闻类型表,它们都是主外键实现的依赖。如图:这是要删除新闻类型表里的一条数据,就得把和它有关系的新闻和新闻下的评论都删除,...

曹学成的博客 262

SQL Server数据库触发器

触发器的主要作用就是能够完成主键和外键不能保证的复杂的数据完整性和数据一致性的约束,触发器可以对数据表进行级联操作,提供比CHECK约束更为复杂的数据完整性 触发器主要有以下优点: 触发器是自动执行的,一旦设立就存在一种触发机制,永远监控着数据库的事件状态。 触发器可以对数据库中的表进行层叠更改。 触发器可以设置比CHECK更为复杂的约束限制。触发器还可以对不同表中的约束进行引用。 ...

21号先锋者 3992

你所要的数据库的触发器来了

本文为大家介绍了数据库的触发器相关内容,希望对你有帮助~~

weixin_53919192的博客 1585

深入浅出触发器

在我的上一篇博客>中介绍了关于如何删除含有主外键关系的表的相关数据,使用级联删除,需要在建立表的SQL 语句中写,如果在建立表的时候没有考虑到级联删除,当使用到删除的时候在想起来,这是修改表的SQL 语句就会有点麻烦了,这时用触发器来解决这个删除有主外键关系的表的相关数据就会容易点了.那么来了解一一下出发器吧!        中国有句话叫做"牵一发而动全身",我想触发器就是一个很好的例子,触

唐欢 1079
上一篇: 数据库 md5加密
下一篇: 实现网站图片切换
pmandy
博客等级 码龄18年 13粉丝 155原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值