首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

delete、insert或update触发器之后的SQL

在数据库中,触发器是一种特殊的数据库对象,它可以在数据库表中的特定操作(如删除、插入或更新)发生时自动执行一系列的SQL语句。触发器通常用于实现数据完整性约束、自动更新数据、记录数据变化历史等功能。

触发器分为三类:delete触发器、insert触发器和update触发器。

  1. Delete触发器:
    • 概念:Delete触发器是在删除操作完成之后自动执行的SQL语句集合。
    • 分类:Delete触发器可以细分为行级触发器和语句级触发器。行级触发器在每个受影响行上触发,而语句级触发器在整个删除操作完成后触发。
    • 优势:Delete触发器可以用于在删除数据之前或之后执行特定的操作,如更新其他相关表的数据、记录删除操作的日志等。
    • 应用场景:Delete触发器常用于实现级联删除、日志记录、审计追踪等功能。
    • 推荐的腾讯云相关产品:腾讯云的云数据库 TencentDB 可以支持触发器功能。详情请参考腾讯云官网:TencentDB产品介绍
  • Insert触发器:
    • 概念:Insert触发器是在插入操作完成之后自动执行的SQL语句集合。
    • 分类:Insert触发器可以细分为行级触发器和语句级触发器。行级触发器在每个插入的行上触发,而语句级触发器在整个插入操作完成后触发。
    • 优势:Insert触发器可以用于在插入数据之前或之后执行特定的操作,如数据验证、生成默认值、更新其他相关表的数据等。
    • 应用场景:Insert触发器常用于数据验证、自动生成数据、触发其他业务逻辑等场景。
    • 推荐的腾讯云相关产品:腾讯云的云数据库 TencentDB 可以支持触发器功能。详情请参考腾讯云官网:TencentDB产品介绍
  • Update触发器:
    • 概念:Update触发器是在更新操作完成之后自动执行的SQL语句集合。
    • 分类:Update触发器可以细分为行级触发器和语句级触发器。行级触发器在每个更新的行上触发,而语句级触发器在整个更新操作完成后触发。
    • 优势:Update触发器可以用于在更新数据之前或之后执行特定的操作,如数据验证、记录变更历史、更新其他相关表的数据等。
    • 应用场景:Update触发器常用于数据验证、记录变更历史、级联更新等场景。
    • 推荐的腾讯云相关产品:腾讯云的云数据库 TencentDB 可以支持触发器功能。详情请参考腾讯云官网:TencentDB产品介绍
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

insert?delete?update?3个insert死锁2个update死锁3个以上delete

lock可以认为是数据库提供锁,用来锁定是数据库中数据。并且一般lock对象仅在事务commitrollback后进行释放(不同事务隔离级别释放时间可能不同),lock是有死锁机制。...共享锁(S) 允许一个事务去读一行 排他锁(X) 允许获得排他锁事务更新删除数据 同时innodb储存引擎支持多粒度锁定,为了支持在不同粒度上进行加锁操作,innodb支持另一种额外锁方式,称之为意向锁...则对记录加X锁 找到满足条件记录,但是记录无效(标识为删除),则对记录加next key锁、; 未找到满足条件记录,则对第一个不满足条件记录加Gap锁,保证没有满足条件记录插入; update?...事务A回滚,释放了持有的排他锁,事务B和事务C需要获得该行排他锁,但是由于互相都持有对应行共享锁,互相等待,造成死锁 2个update死锁 事务A 事务B begin; begin; update...to get lock; try restarting transaction delete操作仅是将主键列中对对应记录delete flag设置为1,实际删除延迟到purge中 delete删除时如果找到满足条件记录

1.6K80
  • 触发器记录表某一个字段数据变化日志 包括插入insert 修改update 删除delete 操作

    本文参考:http://www.cnblogs.com/lyhabc/articles/3236985.html --触发器记录表某一个字段数据变化日志 包括插入insert 修改update 删除delete...,Update,Delete. id int,                            -- 原表ID(主键) old_de datetime,                   -- ...create trigger tr_sto on sto after update,insert,delete as begin    declare @di table(et varchar(200)...' end                       if @op in('Update','Insert')    begin    insert into log_sto      (operate...-- 建跟踪触发器 ALTER trigger tr_sto on sto after update,insert,delete as begin    declare @di table(et NVARCHAR

    1.8K10

    SQL命令 CREATE TRIGGER(一)

    REFERENCING子句允许指定可用于引用列别名。引用旧行允许在UPDATEDELETE触发器期间引用列旧值。引用新行允许在INSERTUPDATE触发器期间引用列新值。...如果省略LANGUAGE子句,则默认为SQL。在这些子句之后,指定一行多行SQL触发器代码ObjectScript触发器代码,指定在执行触发器时要执行操作。...触发器执行用户指定触发器代码。可以指定触发器应该在执行触发事件之前之后执行此代码。触发器特定于指定表。 触发器由指定事件触发:INSERTDELETEUPDATE操作。...可以按任意顺序指定单个触发器事件或以逗号分隔INSERTUPDATEDELETE触发器事件列表。 指定为UPDATE OF触发器仅在指定表一行中更新了一个多个指定列时才执行。...旧值是UPDATEDELETE触发器触发操作之前行值。新值是UPDATEINSERT触发器触发操作之后行值。

    2K30

    ⑩⑥ 【MySQL】详解 触发器TRIGGER,协助 确保数据完整性,日志记录,数据校验等操作。

    什么是触发器 触发器触发器是与表有关数据库对象 ,指在insert / update / delete之前之后 ,触发并执行触发器中定义SQL语句集合。...现在触发器还只支持行级触发 ,不支持语句级触发 。 行级触发:执行insert / update / delete语句,影响5行数据,触发器会被触发5次。...语句级触发:执行insert / update / delete语句,影响n行数据,触发器只触发1次。 触发器类型: ⚪INSERT 触发器:NEW 表示将要已经新增数据。...⚪UPDATE 触发器:OLD 表示修改之前数据,NEW 表示将要已经修改后数据。 ⚪DELETE 触发器:OLD表示将要已经删除数据。 2....-- BEFORE/AFTER表示触发SQL语句时机,在新增/修改/删除操作之前/之后 CREATE TRIGGER 触发器名 {BEFORE | AFTER} {INSERT | UPDATE |

    32730

    Mysql数据库-触发器

    触发器(trigger)是与表有关数据库对象,指在 insert/update/delete 之前之后,触发并执行触发器中定义SQL语句集合。 2....根据触发机制不同: insert/update/delete 4.1.1 触发器解释 1595944780499 在上面的对于 account 表 增删改操作中,我们可以使用触发器对其操作进行记录...trigger 触发器名称 before/after -- 在...之前/在...之后 insert/update/delete -- 触发事件 on 表名 -- 监听表 for each row...account_update after update -- 在 update 操作之后触发 on account -- 监听 account 表 for each row -- 行级触发器 begin...-- 往account_log写入日志信息 -- old关键字:update之前数据;new关键字:update之后数据 insert into account_log values

    90420

    MySQLMariaDB触发器详解

    其中before触发器类似于SQL Server中instead of触发器,作用在检查约束之前。而after触发器SQL Server中一样,在检查约束之后才生效。...或者说,只要涉及了insert相关操作就有new表,只要涉及了delete相关操作就有old表,而update操作基本可以认为是先deleteinsert行为,所以也会触发这两张表。...有两类insert触发器:before和after触发器,分别表示表中记录被删除之前和表中数据被删除之后激活触发器。 注意,delete触发器只在表中记录被删除时候才会被激活。...、之后,向审核表audit中插入一行'before delete''after delete'审核日志。...在insert into... on duplicate key update语句中,插入没有重复值冲突记录时,首先判断是否存在before insert触发器,有就触发,触发之后检查约束,发现没有重复值冲突

    1.8K20

    【愚公系列】2022年01月 Mysql数据库-触发器

    文章目录 一、MySQL触发器 1.触发器概念 2.创建触发器 3.查看触发器 4.删除触发器 5.触发器总结 一、MySQL触发器 1.触发器概念 触发器是与表有关数据库对象,可以在 insert.../update/delete 之前之后,触发并执行触发器中定义SQL语句。...触发器类型 OLD含义 NEW含义 INSERT触发器 无 (因为插入前状态无数据) NEW 表示将要或者已经新增数据 UPDATE触发器 OLD 表示修改之前数据 NEW 表示将要已经修改后数据...AFTER INSERT|UPDATE|DELETE ON 表名 [FOR EACH ROW] -- 行级触发器 BEGIN 触发器要执行功能; END$ DELIMITER ; 触发器演示。...; 5.触发器总结 触发器是与表有关数据库对象 可以在 insert/update/delete 之前之后,触发并执行触发器中定义SQL语句 触发器这种特性可以协助应用在数据库端确保数据完整性

    47310

    ORACLE触发器具体解释

    ORACLE事件指的是对数据库表进行INSERTUPDATEDELETE操作对视图进行类似的操作。ORACLE将触发器功能扩展到了触发ORACLE,如数据库启动与关闭等。...l 触发操作:即该TRIGGER 被触发之后目的和意图,正是触发器本身要做事情。 比如:PL/SQL 块。 l 触发对象:包含表、视图、模式、数据库。...l 触发事件:引起触发器被触发事件,即DML操作(INSERTUPDATEDELETE)。...l 条件谓词:当在触发器中包括多个触发事件(INSERTUPDATEDELETE组合时,为了分别针对不同事件进行不同处理,须要使用ORACLE提供例如以下条件谓词。...假设触发语句是 DELETE 语句,则为TRUE,否则为FALSE 8.2.6 又一次编译触发器 假设在触发器内调用其他函数过程,当这些函数过程被删除改动后,触发器状态将被标识为无效。

    1.1K30

    SQLServer 触发器

    .是一个事务(可回滚,不能手动提交) 触发器类型 delete触发器 当删除表中记录时触发,自动执行触发器所定义SQL语句 insert触发器 当向表中插入数据时触发,自动执行触发器所定义SQL...语句 update触发器 当更新表中某列、多列时触发,自动执行触发器所定义SQL语句 deleted和inserted表 触发器触发时 1.系统自动在内存中创建deleted表inserted...,如果不满足,则向用户报告错误消息,并回滚插入操作 deleted表:表用于存储 DELETEUPDATE 语句所影响副本 1.在执行 DELETE UPDATE 语句时,行从触发器表中删除...如何创建触发器 1.创建触发器语法 create trigger trigger_name on table_name for [delete|insert|update] as t-sql语句 go...触发器一般都需要使用临时表:deleted表和inserted表,它们存放了被删除插入记录行副本 触发器类型:INSERT触发器UPDATE触发器DELETE触发器

    1.9K20

    SQL Server触发器创建、删除、修改、查看示例步骤

    这两个表结构总是与被该触发器作用结构相同。触发器执行 完成后﹐与该触发器相关这两个表也被删除。 Deleted表存放由于执行DeleteUpdate语句而要从表中删除所有行。...Inserted表存放由于执行InsertUpdate语句而要向表中插入所有行。...After触发器在一个Insert,UpdateDeleted语句之后执行﹐进行约束检查等动作都在After触发器被激活之前发生。After触发器只能用于表。...一个表视图每一个修改动作(insert,updatedelete)都可以有一个instead of 触发器﹐一个表每个修改动作都可以有多个After触发器。...四﹕触发器执行过程 如果一个Insertupdate或者delete语句违反了约束﹐那幺After触发器不会执行﹐因为对约束检查是在After触发器被激动之前发生

    1.4K30

    MySQL触发器了解一下

    简介 触发器是与表有关数据库对象,当表发生INSERT/UPDATE/DELETE操作时,对应操作触发器会被触发,将在这些操作之前之后执行触发器中定义SQL语句集合。...trigger_name:触发器名称。 trigger_time:触发动作时间。可以是BEFOREAFTER,表示触发器在要修改每一行之前之后激活。...trigger_event:触发器类型,可以是INSERTUPDATEDELETE。 tbl_name:和触发器关联表名,必须为一个永久表,不能是视图或者临时表。...触发器分为三种类型:INSERTDELETEUPDATE。...DELETE触发器:当在表中删除一行时,触发器就会激活。删除操作只有旧行,所以只有OLD关键字可用,可以通过OLD访问删除旧行数据。 UPDATE触发器:当表中一行数据被修改时,触发器就会激活。

    75910

    SQL Server 触发器

    insertdeleteupdate)时就会激活它执行。...SqlServer中DML触发器有三种: insert触发器:向表中插入数据时被触发; update触发器:修改表中数据时被触发; delete触发器:从表中删除数据时被触发...当遇到下列情形时,应考虑使用DML触发器: 通过数据库中相关表实现级联更改 防止恶意或者错误insertupdatedelete操作,并强制执行check约束定义限制更为复杂其他限制...登录触发器 登录触发器将为响应 LOGIN 事件而激发存储过程。与 SQL Server 实例建立用户会话时将引发此事件。登录触发器将在登录身份验证阶段完成之后且用户会话实际建立之前激发。...Insert触发器,使用到inserted表; Update触发器,使用到deleted表和inserted表; Delete触发器,使用到deleted表。

    2.7K10

    MySQL触发器

    注意 MySQL触发器 定义 MySQL触发器和存储过程一样,都是嵌入到MysQL中一段程序,不过触发器不要调用,而是由事件触发,这些事件包括insertupdatedelete语句,如果定义了触发程序...trigger_event:触发事件,取值为insertupdatedelete insert :比如Mysql中insert和replace语句就会触发这个事件 update:更新某一行数据会激发这个事件...,比如update语句 delete:删除某一行时候激发触发器,可能通过delete或者replace语句激发 table:标识建立触发器表名,即是当那张表发生了insertupdatedelete...这时,若SQL语句触发器执行失败,MySQL 会回滚事务,有: 如果 BEFORE 触发器执行失败,SQL 无法正确执行。 SQL 执行失败时,AFTER 型触发器不会触发。...NEW 和 OLD 在INSERT触发器中,NEW用来表示将要(BEFORE)已经(AFTER)插入新数据; 在UPDATE触发器中,OLD 用来表示将要已经被修改原数据,NEW 用来表示将要已经修改为新数据

    5.1K20

    MySQL学习--触发器

    :标识触发事件,取值为 INSERTUPDATE DELETE; tbl_name:标识建立触发器表名,即在哪张表上建立触发器; trigger_stmt:触发器程序体,可以是一句SQL语句,或者用...由此可见,可以建立6种触发器,即:BEFORE INSERT、BEFORE UPDATE、BEFORE DELETE、AFTER INSERT、AFTER UPDATE、AFTER DELETE。...trigger_event 详解 MySQL 除了对 INSERTUPDATEDELETE 基本操作进行定义外,还定义了 LOAD DATA 和 REPLACE 语句,这两种语句也能引起上述6中类型触发器触发...可以设为1个多个长度符号,默认是分号(;),我们可以把它修改为其他符号,如:DELIMITER 在这之后语句,以分号结束,解释器不会有什么反应,只有遇到了 一个完整创建触发器示例 假设系统中有两个表...具体地: 在 INSERT触发器中,NEW 用来表示将要(BEFORE)已经(AFTER)插入新数据; 在 UPDATE触发器中,OLD 用来表示将要已经被修改原数据,NEW 用来表示将要已经修改为新数据

    4.8K20

    ORACLE触发器(trigger)使用

    对数据表进行DML语句操作(如insertupdatedelete)时所触发触发器,可以分为: 语句级触发器行级触发器:行级触发器会对数据库表中受影响每一行触发一次触发器代码,语句级触发器则只触发一次...,与语句所影响到行数无关 before触发器after触发器:before触发器在触发事件发生之前执行触发器代码,after触发器则在触发事件发生之后执行 语法: create [or replace...before | after : 指定触发器是在触发事件发生之前触发还暗示发生之后触发 trigger_event:触发事件,在DML触发器中主要为insertupdatedelete等 table_name...[when trigger_condition] --触发条件 trigger_body --触发体,PL/SQL块 (3)系统事件触发器 对数据库实例某个用户模式进行操作时定义触发器,可以分为:...(after触发器) 创建触发器:将对student表操作都记录到stu_log表中(update of 用于指定一个多个字段,指定字段被更新时才会触发触发器) create or replace

    1K40

    Oracle-trigger触发器解读

    每当一个特定数据操作语句(insert update delete)在指定表上发出时,Oracle自动执行触发器中定义语句序列。...| AFTER } {INSERT | DELETE | UPDATE [OF column [, column …]]} [OR {INSERT | DELETE | UPDATE [OF column...当一个基表被修改( INSERT, UPDATE, DELETE)时要执行存储过程,执行时根据其所依附基表改动而自动触发,因此与应用程序无关,用数据库触发器可以保证数据一致性和完整性。...如果指定为BEFORE,则表示在执行DML操作之前触发,以便防止某些错误操作发生实现某些业务规则;如果指定为AFTER,则表示在执行DML操作之后触发,以便记录该操作做某些事后处理。...条件谓词:当在触发器中包含多个触发事件(INSERTUPDATEDELETE组合时,为了分别针对不同事件进行不同处理,需要使用ORACLE提供的如下条件谓词。 1)。

    1.1K30
    领券